我如何比较两个 HDFS 文件,因为没有diff
?
我正在考虑使用 Hive 表并从 HDFS 加载数据,然后在 2 个表上使用 join 语句。有没有更好的方法?
没有diff
hadoop 提供的命令,但实际上您可以在 shell 中使用重定向diff
命令:
diff <(hadoop fs -cat /path/to/file) <(hadoop fs -cat /path/to/file2)
如果您只想知道两个文件是否相同而不关心差异,我会建议另一种基于校验和的方法:您可以获取两个文件的校验和,然后比较它们。我认为 Hadoop 不需要生成校验和,因为它们已经存储,所以它应该很快,但我可能是错的。我认为没有命令行选项,但您可以使用 Java API 轻松完成此操作并创建一个小型应用程序:
FileSystem fs = FileSystem.get(conf);
chksum1 = fs.getFileChecksum(new Path("/path/to/file"));
chksum2 = fs.getFileChecksum(new Path("/path/to/file2"));
return chksum1 == chksum2;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)