cat e dividir um arquivo e fazer o upload para hdfs?

0

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
    
por sri hari kali charan Tummala 07.10.2017 / 18:05

1 resposta

0

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
    
por 07.10.2017 / 18:29