我正在嘗試解壓縮 HDFS 中的數百個檔案,并將每個檔案單獨移動到另一個檔案夾,以便可以將其加載到 Hive 中的外部表中。我嘗試了以下命令,但它只在目標目錄中提供了 1 個沒有名稱的連接檔案。
!hdfs dfs -cat /user/[somedir1]/* | hadoop fs -put - /user/[somedir2]/uncompressed/

我需要(例如)100 個要解壓縮的壓縮檔案,并將這些解壓縮檔案中的每一個單獨移動到目標目錄以進行除錯。我不能使用另一種編程語言,因為它會使專案變得比需要的更復雜。我認為這可以使用 hdfs 命令列來完成,我只是不知道正確的單行語法。
uj5u.com熱心網友回復:
找到了如何在 Shell 中完全解壓每個單獨檔案的單行解決方案。
for FILE in somedir1/*; do if [[ $FILE == *\.gzip ]] ; then newname='somedir2/'$(basename -s .gzip $FILE); zcat "${FILE}" > $newname; fi; done
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/405767.html
標籤:
上一篇:列中相同值的最小時間戳磁區
