在 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
我在 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