我找不到一个开源工具或库来比较两个镶木地板文件。假设我没有忽视明显的,这是否有技术原因?
在编写拼花差异工具之前,程序员需要考虑什么?
我使用的是Python语言。
谢谢。
答案 0 :(得分:2)
最简单的组合是将pandas
与pyarrow
一起使用。一旦安装了这两个软件包,就可以使用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)