Você pode evitar dividir e dividir você mesmo:
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
Eu estou tentando alcançar este cenário onde eu posso dividir um arquivo gz que está no Linux local e fazer o upload para hdfs como parte de arquivos descompactados ou zipados sem gravar a saída dividida em disco. Estou tendo problemas depois de tentar este comando abaixo.
abaixo o comando grava no disco local, então eu posso fazer o upload para o hdfs que eu não quero: -
zcat ./file.txt.gz | tail -n +2 | split -l 20 - file.part
hdfs dfs -copyFromLocal ./*file.part* /folder/in/hdfs/
Eu quero algo como isto é possível?: -
zcat ./file.txt.gz | tail -n +2 | split -l 20 | gzip -d | hdfs dfs -put - /folder/in/hdfs/file.part