遍历 hdfs 目录
Loop through hdfs directories
我的 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.*//g')
done
这是最好的方法还是有更好的替代方法?
您也可以使用 Java 代码或 python 脚本,尽管这似乎也足够好。
我的 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.*//g')
done
这是最好的方法还是有更好的替代方法?
您也可以使用 Java 代码或 python 脚本,尽管这似乎也足够好。