繁体   English   中英

如何在 python 中执行 AVRO Diff(2 个 AVRO 文件之间的差异)

[英]How can I perform AVRO Diff (Difference between 2 AVRO files) in python

这个问题已经在某种程度上得到了回答: 反正有没有比较两个 avro 文件,看看数据中存在哪些差异?

但是,我想检查是否有任何更简单的方法在 Python 中创建一个函数,该函数需要两个 AVRO 文件,比较它们并确定它们是否相同或不同。 我知道需要检查模式,然后检查内容。

我不认为有一个预先创建的库可以与 Avro 对象进行比较,但有很多可以做 JSON。 例如,您可以在 Java 中使用 Jackson ( https://www.baeldung.com/jackson-compare-two-json-objects ) 或者您可以在 python 中使用 deepdiff ( https://pypi.org/project/deepdiff/ ) . 您可以将 AVRO 反序列化为 JSON 并应用其中之一。

然而,就像 Jijo 所说的,这取决于你在哪里运行它以及你的性能要求是什么。

--> 你想在哪里运行这个程序? --> 是否在安装了 hive/pig 的集群中? 如果您能够将这两个文件加载到 pigscript 中,则 group by 和 count of each line == 2 应该对您有所帮助,因为它们是否相同。

如果它不是一个集群——我将回退到 java 使用 avroutil jar 读取文件并开始迭代记录。 [我不确定这种方法中数据文件的可扩展性]

最好的方法是在你的包装程序中使用 hive/pig 来比较数据是高效且可扩展的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM