可以比较两个镶木地板文件吗?

时间:2018-04-28 06:38:58

标签: parquet

我找不到一个开源工具或库来比较两个镶木地板文件。假设我没有忽视明显的,这是否有技术原因?

在编写拼花差异工具之前,程序员需要考虑什么?

我使用的是Python语言。

谢谢。

1 个答案:

答案 0 :(得分:2)

最简单的组合是将pandaspyarrow一起使用。一旦安装了这两个软件包,就可以使用https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_parquet.html将Apache Parquet文件加载到Pandas DataFrame中,然后在两个生成的DataFrame上使用Pandas“assert_frame_equal

请注意,这将比较两个生成的DataFrame,而不是Parquet文件的确切内容。由于并非所有Parquet类型都可以1:1与Pandas匹配,因此如果是Date或DateTime等信息将丢失,但Pandas提供了非常好的比较基础设施。

或者,您可以使用Apache Arrow(上面提到的pyarrow包)并将数据读入pyarrow.Table并检查是否相等。这种方法可以更好地保留类型信息,但如果存在一些差异,则对差异的详细程度较低:

import pyarrow.parquet as pq

table1 = pq.read_table('file1.parquet')
table2 = pq.read_table('file2.parquet')

assert table1.equals(table2)