2015-02-23 104 views
5

我的HDFS目錄結構如下所示。通過hdfs目錄循環

/user/hive/warehouse/check.db/abcd/date=2015-02-02/xyz=hijk/000000_0 /user/hive/warehouse/check.db/abcd/date=2015-02- 02/xyz = pqrs/000000_0

我試圖遍歷「/user/hive/warehouse/check.db/abcd」下的所有目錄,並派生出2個字段,並使用下面的代碼。

INPUT='/user/hive/warehouse/check.db/abcd' 

for dir in $(hadoop fs -ls $INPUT/*/ | grep -o -e "$INPUT/.*") ; do 

    xyz=$(echo $dir | cut -d '=' -f 3) 
    date=$(echo $dir | sed 's/.*date=\(.*\)\/xyz.*/\1/g') 

done 

是否做到這一點,最好的辦法還是有更好的替代辦法做到這一點?

回答

0

你也可以使用Java代碼或python腳本,儘管這似乎也足夠好了。