PyArrow 设置列类型 Table.from_pydict (schema)

PyArrow setting column types with Table.from_pydict (schema)

PyArrow table 创建为 pyarrow.Table.from_pydict(d) 所有列都是字符串类型。

如下所示创建架构对象 [1],并将其用作 pyarrow.Table.from_pydict(d, schema=s) 会导致错误,例如:

pyarrow.lib.ArrowTypeError: object of type <class 'str'> cannot be converted to int

有没有办法在从字典创建的 table 中设置列​​类型?上下文正在写入 Parquet 文件。 Pandas 中的类似方法是 df.astype(schema).dtypes.

[1]

schema = pa.schema([
  ('id', pa.int32()),
  ('message_id', pa.string()),
  ('transaction_id', pa.string()),
])

正确的做法似乎是pyarrow.Table.from_pydict(d).cast(schema)