Распаковка файла при загрузке в HDFS - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть данные, которые я хочу загрузить в HDFS.

папка с данными является многослойной, но самый внутренний каталог содержит только несколько файлов .gz.

папка сжата примерно на 250 ГБ, иЯ не знаю, сколько там файлов gz.

Я хочу загрузить это в HDFS, но они должны быть распакованы.

Есть ли способ, которым я могу добиться этого с помощью одного hadoop fs -put команда?или пишет файл сценария, распаковывает его по одному и загружает в hdfs единственным способом?

1 Ответ

0 голосов
/ 16 ноября 2018

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

for file in $( ls ); do
    echo Uncompressing and putting $file
    gunzip -c $file | hdfs dfs -put - "/hdfs-dir/$file.txt"
done
...