gpt4 book ai didi

python - 将 pyarrow 模式分配给 pa.Table.from_pandas()

转载 作者:行者123 更新时间:2023-12-01 09:10:07 34 4
gpt4 key购买 nike

我的 pandas 数据框中有一个列表列以及 int、string 等列。我能够转换字符串、日期、整数和时间戳列。我想知道如何将 array() 应用于列表列。

fields = [
pa.field('id', pa.int64()),
pa.field('secondaryid', pa.int64()),
pa.field('date', pa.timestamp('ms')),
pa.field('emails', pa.array())
]

my_schema = pa.schema(fields)

table = pa.Table.from_pandas(sample_df, schema=my_schema, preserve_index=False)

它要求为数组传递一个对象。我想知道如何将字符串类型数组的架构应用到“电子邮件”列,请记住我将表写入 Parquet 格式,因此空数组将导致 SegFault。最好的方法是什么?

最佳答案

您需要提供 pa.list_(pa.string()) 而不是 pa.array。 pa.array 是 pyarrow.Array 实例的构造函数。这是保存任何类型数据的主要对象。与此相反,pa.list_() 是 LIST 类型的构造函数。作为其单个参数,它需要具有组成列表元素的类型。

用 Arrow 术语来说,数组是保存类型化数据的最简单的结构。它由许多连续内存的缓冲区组成。主缓冲区始终是一个位图,指示行是否有效或为空。取决于数组的类型。该数据将有一个缓冲区(例如,对于整数),或者对于更复杂的类型有多个缓冲区。相反,术语列表用于描述数组中存储的数据类型。 LIST 意味着列中的单个单元格/行可以保存相同类型的多个值。

关于python - 将 pyarrow 模式分配给 pa.Table.from_pandas(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51728242/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com