Копировать файл из Hdfs в Hdfs scala - PullRequest
0 голосов
/ 03 июля 2019

Известен ли способ использования Hadoop api / spark scala для копирования файлов из одного каталога в другой на Hdfs?

Я пытался использовать copyFromLocalFile, но это не помогло

Ответы [ 2 ]

1 голос
/ 04 июля 2019

Попробуйте команду FileUtil.copy() Hadoop, как описано здесь: https://hadoop.apache.org/docs/r2.8.5/api/org/apache/hadoop/fs/FileUtil.html#copy(org.apache.hadoop.fs.FileSystem,%20org.apache.hadoop.fs.Path,%20org.apache.hadoop.fs.FileSystem,%20org.apache.hadoop.fs.Path,%20boolean,%20org.apache.hadoop.conf.Configuration)

val conf = new org.apache.hadoop.conf.Configuration()
val srcPath = new org.apache.hadoop.fs.Path("hdfs://my/src/path")
val dstPath = new org.apache.hadoop.fs.Path("hdfs://my/dst/path")

org.apache.hadoop.fs.FileUtil.copy(
srcPath.getFileSystem(conf), 
srcPath, 
dstPath.getFileSystem(conf), 
dstPath, 
true, 
conf
) 
0 голосов
/ 03 июля 2019

Как я понимаю ваш вопрос, ответ так же прост, как abc.На самом деле, нет никакой разницы между вашей файловой системой ОС и некоторыми другими распределенными версиями в фундаментальных понятиях, таких как копирование файлов в них.Это правда, что у каждого будут свои правила в командах.Например, если вы хотите скопировать файл из одного каталога в другой, вы можете сделать что-то вроде:

hdfs dfs -cp /dir_1/file_1.txt /dir_2/file_1_new_name.txt

Первая часть примера команды - просто позволить команде быть направленной к истинному месту назначенияне собственная файловая система ОС.

для дальнейшего чтения вы можете использовать: копирование данных в формате hdf

...