cat 并分割文件并上传到 hdfs?

cat 并分割文件并上传到 hdfs?

我试图实现这种情况,我可以分割本地 linux 上的 gz 文件并将其作为解压缩或压缩文件的一部分上传到 hdfs,而无需将分割输出写入磁盘。尝试以下命令后我遇到问题。

下面的命令写入本地磁盘,然后我可以上传到我不想要的 hdfs :-

zcat ./file.txt.gz | tail  -n +2 | split -l 20 - file.part 


hdfs dfs -copyFromLocal ./*file.part* /folder/in/hdfs/

我想要这样的东西可以实现吗?:-

zcat ./file.txt.gz | tail  -n +2 | split -l 20 | gzip -d | hdfs dfs -put - /folder/in/hdfs/file.part

答案1

您可以避免拆分并自行进行拆分:

number_of_files=5 # for you to determine
zcat ./file.txt.gz | for((i=0;i<5;i++)); do
    head -n 20 | hdfs dfs -put - /folder/in/hdfs/file.part_$i
done

相关内容