You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PyArrow从Parquet文件中获取字典类型的取值?

获取PyArrow中Parquet字典类型列的取值

要拿到DictionaryType列的字典取值,核心是先读取对应列的DictionaryArray实例,再通过它的.dictionary属性提取取值,具体操作如下:

方法1:读取整个表后提取目标列

import pyarrow.parquet as pq

# 读取Parquet文件为Table对象
table = pq.read_table('dummy_file.parquet')
# 获取目标列的DictionaryArray
dict_col_array = table['dummy_column']
# 提取字典中的所有取值
dict_values = dict_col_array.dictionary
# 转成Python列表查看结果
print(dict_values.to_pylist())

方法2:仅读取目标列(更高效)

如果文件体积较大,只读取需要的列能节省内存和读取时间:

import pyarrow.parquet as pq

# 仅读取指定列
table = pq.read_table('dummy_file.parquet', columns=['dummy_column'])
dict_col_array = table['dummy_column']
dict_values = dict_col_array.dictionary
print(dict_values.to_pylist())

补充说明

  • 仅通过schema只能知道列是DictionaryType以及它的value类型(比如例子里的string),但无法拿到实际的字典取值——因为字典的具体值是存储在数据文件中的,必须读取数据才能获取。
  • .dictionary返回的是一个PyArrow Array对象,用.to_pylist()可以转成Python原生列表方便使用。

内容的提问来源于stack exchange,提问作者In78

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:22:05