在hdfs我的資料夾路徑結構是這樣的:合併多個檔案遞迴hdfs
/data/topicname/year=2017/month=02/day=28/hour=00
/data/topicname/year=2017/month=02/day=28/hour=01
/data/topicname/year=2017/month=02/day=28/hour=02
/data/topicname/year=2017/month=02/day=28/hour=03
這些路徑裡面我有很多小規模的json檔案。我正在編寫乙個shell指令碼,它可以將所有這些單獨目錄中存在的所有檔案合併為乙個單獨的檔名,具體取決於路徑。
例子:內的所有jsons /資料/ topicname /年= 2017 /月= 02 /天= 28 /小時= 00成乙個合併的檔案full_2017_02_28_00.json內
所有jsons /資料/所有jsons在/ data/topicname/year = 2017/month = 02/day = 28/hour = 2/day = 28/hour = 01到乙個合併檔案full_2017_02_28_01.json
02合併到乙個合併檔案full_2017_02_28_02.json中,依此類推。
在上述模式中保留檔名是我將嘗試實現的第二職業。目前我可以對檔名進行硬編碼。
但是,目錄路徑結構內部的遞迴串聯沒有發生。
到目前為止,我在下面嘗試:
hadoop fs -cat /data/topicname/year=2017/* | hadoop fs -put - /merged/test1.json
錯誤: -
cat: `/data/topicname/year=2017/month=02/day=28/hour=00': is a directory
cat: `/data/topicname/year=2017/month=02/day=28/hour=01': is a directory
cat: `/data/topicname/year=2017/month=02/day=28/hour=02': is a directory
遞迴貓是不會發生在上述嘗試
hadoop fs -ls /data/topicname/year=2017/month=02 | find /data/topicname/year=2017/month=02/day=28 -name '*.json' -exec cat {} \; > output.json
錯誤: -
find: 『/data/topicname/year=2017/month=02/day=28』: no such file or directory
這是在做本地fs而不是hdfs發現上面嘗試
for i in `hadoop fs -ls -r /data/topicname/year=2017/ | cut -d' ' -f19` ;do `hadoop fs -cat $i/* |hadoop fs -put - /merged/output.json`; done
錯誤: -
cannot write output to stream message is repeated multiple times
file /merged/output.json is repeated a few times
這是如何實現的?我不想使用spark。
2017-03-01
earl
合併多個word檔案
unit wordoperate 2008 10 inte ce uses sysutils,comobj,shellapi,windows 合併多個word檔案,存到乙個指定檔案裡 引數說明 arrword 為帶路徑的word檔名稱陣列 outfilename 為合併後的檔名稱 binsertpa...
excel多個檔案合併
多個excel檔案合併成乙個需要用ms office wps是不行的 1.將所有檔案放在乙個資料夾裡 2.在資料夾裡新建乙個空的excel開啟 如果是合併多個sheet的話,右鍵sheet全部選中,點選移動或複製工作表,選擇乙個工作表就o了 sub 合併當前目錄下所有工作簿的全部工作表 dim my...
python縱向合併(按行合併)多個csv檔案
將多個csv檔案合到乙個csv檔案 import os import pandas as pd import glob csv list glob.glob 14 points 檢視同資料夾下的csv檔案數 print u 共發現 s個csv檔案 len csv list print u 正在處理....