Hadoop copyMerge не работает должным образом: scala - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь объединить 3 файла в HDFS через scala. Все 3 файла находятся в папке HDFS srcPath, как указано в приведенном ниже коде.

Создана функция, как показано ниже:

def mergeFiles(conf: Configuration, fs: FileSystem, srcPath: Path, dstPath: String, finalFileName: String): Unit {
val localfs = FileSystem.getLocal(conf)
val status = fs.listStatus(srcPath)

status.foreach(x =>
FileUtil.copyMerge(fs, x.getPath, localfs, new Path(dstPath.toString), false, conf, null)
}

Я пытался выполнить это, ни результата, ни ошибки, также не было создано даже файла. Я проверил, что правильно передаю все аргументы.

Есть какие-нибудь подсказки?

1 Ответ

0 голосов
/ 24 мая 2019

Второй аргумент copyMerge - это каталог, а не отдельный файл. Это должно работать:

FileUtil.copyMerge(fs, srcPath, localfs, new Path(dstPath.toString), false, conf, null)

Обычно чтение исходного кода является лучшим способом устранения таких проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...