我在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中的文件不起作用我可以知道原因吗?
答案 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