首页 > 解决方案 > 在没有熊猫的情况下从 Python 编写镶木地板文件

问题描述

作为 ETL 管道的一部分,我需要将数据从 JSON 转换为镶木地板。我目前正在使用pyarrow.Tablefrom_pandas的方法进行操作。但是,首先构建数据框感觉像是一个不必要的步骤,而且我想避免将熊猫作为依赖项。

有没有一种方法可以编写镶木地板文件而无需先将其加载到数据框中?

标签: pythonparquetpyarrow

解决方案


目前,构建 Parquet 最方便的方法是使用 Pandas,因为它已经很成熟了。尽管如此,pyarrow它还提供了从普通 Python 构建它的表的工具:

import pyarrow as pa

string_array = pa.array(['a', 'b', 'c'])
pa.Table.from_arrays([string_array], ['str'])

由于 Parquet 是一种列式数据格式,因此您必须将数据加载到内存中才能执行逐行到列式数据表示的转换。

目前,您还需要立即构造 Arrow 数组;你不能逐步建立它们。将来,我们计划从 C++ 公开(增量)构建器类:https ://github.com/apache/arrow/pull/1930


推荐阅读