用数据构造Table。避免创建数据框
Using data to construct Table. Avoid creating dataframe
Pandas 数据框很重所以我想避免这种情况。
但是我想构建 Pyarrow Table 以便以镶木地板格式存储数据。
我搜索并阅读了文档并尝试使用
from_array()
但它不工作。
field=[pa.field('name',pa.string()),pa.field('age',pa.int64())]
arrays=[pa.array(['Tom']),pa.array([23])]
pa.Table.from_arrays(pa.schema(field),arrays)
错误是:
名称的长度 (1) 与数组的长度 (2) 不匹配
在此处查看 Table.from_arrays
文档:https://arrow.apache.org/docs/python/generated/pyarrow.Table.html#pyarrow.Table.from_arrays
它期望的第一个参数是数组,而不是模式。所以你可以这样做:
In [64]: pa.Table.from_arrays(arrays, schema=pa.schema(field))
Out[64]:
pyarrow.Table
name: string
age: int64
或者传递列名而不是完整模式:
In [65]: pa.Table.from_arrays(arrays, names=['name', 'age'])
Out[65]:
pyarrow.Table
name: string
age: int64
在下一个版本的pyarrow (0.14.0)中,您还可以:
In [51]: pa.Table.from_pydict({'name': pa.array(['Tom']), 'age': pa.array([23])})
Out[51]:
pyarrow.Table
name: string
age: int64
Pandas 数据框很重所以我想避免这种情况。 但是我想构建 Pyarrow Table 以便以镶木地板格式存储数据。
我搜索并阅读了文档并尝试使用 from_array() 但它不工作。
field=[pa.field('name',pa.string()),pa.field('age',pa.int64())]
arrays=[pa.array(['Tom']),pa.array([23])]
pa.Table.from_arrays(pa.schema(field),arrays)
错误是: 名称的长度 (1) 与数组的长度 (2) 不匹配
在此处查看 Table.from_arrays
文档:https://arrow.apache.org/docs/python/generated/pyarrow.Table.html#pyarrow.Table.from_arrays
它期望的第一个参数是数组,而不是模式。所以你可以这样做:
In [64]: pa.Table.from_arrays(arrays, schema=pa.schema(field))
Out[64]:
pyarrow.Table
name: string
age: int64
或者传递列名而不是完整模式:
In [65]: pa.Table.from_arrays(arrays, names=['name', 'age'])
Out[65]:
pyarrow.Table
name: string
age: int64
在下一个版本的pyarrow (0.14.0)中,您还可以:
In [51]: pa.Table.from_pydict({'name': pa.array(['Tom']), 'age': pa.array([23])})
Out[51]:
pyarrow.Table
name: string
age: int64