2015-02-23 15 views
5

HDFS dizin yapağım aşağıdakine benziyor.HDFS dizinleri üzerinden geçme

/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" altındaki tüm dizinlerde dolaşmaya ve 2 alan türetmeye çalışıyorum ve aşağıdaki kodu kullanıyorum.

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 

Bunu yapmanın en iyi yolu bu mu yoksa bunu yapmak için daha iyi bir alternatif yolu var mı?

cevap

0

Ayrıca, Java kodu veya bir python betiği de kullanabilirsiniz, ancak bu da yeterince iyi görünüyor.