两个Parquet文件可以进行比较吗?

4

我找不到一个开源工具或库来比较两个Parquet文件。假设我没有忽略显而易见的东西,这是由于技术原因吗?

在编写Parquet diff工具之前,程序员需要考虑什么?

我正在使用Python语言。

谢谢。

1个回答

9
最简单的组合是使用 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 类型都可以与 Pandas 一一对应,因此诸如日期或日期时间之类的信息将丢失,但 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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接