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

Find line count of a file in HDFS to compare with the count present in QC file

我在 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 the file in hdfs is not working 我可以知道原因吗?

你应该使用这样的东西:

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