Я пытаюсь записать файл в локальный FileSystem
, используя библиотеку FileSystem org.apache.hadoop.fs
. Ниже мой однострочный код внутри большого скала-кода, который должен это делать, но это не так.
fs.copyToLocalFile(false, hdfsSourcePath, new Path(newFile.getAbsolutePath), true)
Значение newFile
равно:
val newFile = new File(s"${localPath}/fileName.dat")
localPath
- это просто переменная, содержащая полный путь на локальном диске.
hdfsSourcePath
- полный путь к папке HDFS.
Задание выполняется правильно, но я не вижу файлы, созданные на локальном компьютере. Я запускаю его через Spark
движок в режиме cluster
, поэтому я использовал метод copyToLocalFile
, который перегружает 4-й аргумент useRawLocalFileSystem
и устанавливал его на true
. Используя это, мы можем избежать записи файлов на узел исполнителя.
Есть идеи?