在HDFS中查找文件的行数,以与QC文件中的计数进行比较

时间:2017-04-02 21:06:45

标签: shell hadoop hdfs webhdfs

我在HDFS中加载了一个数据文件和qc文件,我想比较QC文件中的计数和数据文件行数。为此,我编写了一个shell脚本,它提取QC文件的计数部分并为数据文件执行wc -l

对于质量检查档案:

qccount=$(webhdfs -cat hdfs://${CLUSTER_NAME}$hdfs_src_path/$directory/$qc_file_name | cut -d "|" -f2)

echo "QC file count: $qccount";

这会将计数打印为256341

对于数据文件:

file_count=$(webhdfs -cat hdfs://${CLUSTER_NAME}$hdfs_src_path/$directory/$data_file_name | wc -l | cut -d " " -f1)

echo "File count: $file_count";

打印出0

这里wc -l for hdfs中的文件不起作用我可以知道原因吗?

1 个答案:

答案 0 :(得分:2)

你应该使用这样的东西:

file_count=$(hdfs dfs -cat hdfs://${CLUSTER_NAME}$hdfs_src_path/$directory/$data_file_name | wc -l)

echo "File count: $file_count";

注意:我不确定您使用webhdfs -cat代替hdfs dfs -cat

的原因