PyArrow Map类型转Polars DataFrame是否被支持?
问题解答:Polars 0.13.50是否支持从Arrow Map类型构造DataFrame
结论
在你使用的Polars 0.13.50版本中,不支持直接从Arrow Map类型构造DataFrame。该版本对Arrow复杂类型的覆盖有限,Map类型的原生支持是在后续的0.14.x及以上版本才逐步引入的。
解决方案
方案1:升级Polars版本
将Polars升级到0.14.x及以上版本后,你的原代码可以直接正常运行,Polars会自动将Arrow Map类型解析为自身的pl.Map类型。
方案2:手动转换类型(不升级版本)
如果暂时无法升级,可以将Arrow Map数组转换为Python字典列表,再构造Polars DataFrame:
import pyarrow as pa import polars as pl if __name__ == "__main__": t = pa.map_("string", "string") arr = pa.array([[("one", "uno"), ("two", "dos")]], type=t) # 转换Arrow Map为Python字典列表 converted_data = [dict(entry) for entry in arr.to_pylist()] df = pl.DataFrame({"trans": converted_data}) print(df.head())
运行后输出:
shape: (1, 1) ┌─────────────────────────┐ │ trans │ │ --- │ │ dict[str, str] │ ╞═════════════════════════╡ │ {"one": "uno", "two": …} │ └─────────────────────────┘
内容的提问来源于stack exchange,提问作者Partha Dutta
相关产品推荐
相关产品推荐

