![](/img/trans.png)
[英]How can I parse JSON into a binary Avro file using the Python Avro api?
[英]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.