如何在使用 PyArrow 编写镶木地板文件时提供镶木地板架构
How to provide parquet schema while writing parquet file using PyArrow
我有一个原始输入 csv 数据,其中所有字段都是字符串类型。我想将此 csv 转换为镶木地板格式。但是,在转换为镶木地板时,我想通过为数据提供自定义模式来编写它。我正在使用 PyArrow 将 csv 转换为镶木地板。
如何在使用 PyArrow 将文件写入 parquet 时提供自定义架构?
这是我使用的代码:
import pyarrow as pa
import pyarrow.parquet as pq
# records is a list of lists containing the rows of the csv
table = pa.Table.from_pylist(records)
pq.write_table(table,"sample.parquet")
能举个记录的例子吗?如果我尝试按照建议使用列表列表失败:
>>> pa.Table.from_pylist([["1", "2"], ["first", "second"]])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pyarrow/table.pxi", line 3682, in pyarrow.lib.Table.from_pylist
return _from_pylist(cls=Table,
File "pyarrow/table.pxi", line 5199, in pyarrow.lib._from_pylist
names = list(mapping[0].keys())
AttributeError: 'list' object has no attribute 'keys'
我希望记录是文档中的字典列表。
data = [{'strs': '', 'floats': 4.5},
{'strs': 'foo', 'floats': 5},
{'strs': 'bar', 'floats': None}]
table = pa.Table.from_pylist(data)
您可以在从 py_list 构建 table 时使用架构,在这种情况下:
schema = pa.schema([('a', pa.int64()),
('c', pa.int32()),
('d', pa.int16())
])
table = pa.Table.from_pylist(
[{'a': 1, 'b': 3}, {'a': 2, 'b': 4}, {'a': 3, 'b': 5}],
schema=schema
)
data = [{'a': 1, 'c': None, 'd': None},
{'a': 2, 'c': None, 'd': None},
{'a': 3, 'c': None, 'd': None}]
assert table.schema == schema
assert table.to_pylist() == data
我有一个原始输入 csv 数据,其中所有字段都是字符串类型。我想将此 csv 转换为镶木地板格式。但是,在转换为镶木地板时,我想通过为数据提供自定义模式来编写它。我正在使用 PyArrow 将 csv 转换为镶木地板。
如何在使用 PyArrow 将文件写入 parquet 时提供自定义架构?
这是我使用的代码:
import pyarrow as pa
import pyarrow.parquet as pq
# records is a list of lists containing the rows of the csv
table = pa.Table.from_pylist(records)
pq.write_table(table,"sample.parquet")
能举个记录的例子吗?如果我尝试按照建议使用列表列表失败:
>>> pa.Table.from_pylist([["1", "2"], ["first", "second"]])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pyarrow/table.pxi", line 3682, in pyarrow.lib.Table.from_pylist
return _from_pylist(cls=Table,
File "pyarrow/table.pxi", line 5199, in pyarrow.lib._from_pylist
names = list(mapping[0].keys())
AttributeError: 'list' object has no attribute 'keys'
我希望记录是文档中的字典列表。
data = [{'strs': '', 'floats': 4.5},
{'strs': 'foo', 'floats': 5},
{'strs': 'bar', 'floats': None}]
table = pa.Table.from_pylist(data)
您可以在从 py_list 构建 table 时使用架构,在这种情况下:
schema = pa.schema([('a', pa.int64()),
('c', pa.int32()),
('d', pa.int16())
])
table = pa.Table.from_pylist(
[{'a': 1, 'b': 3}, {'a': 2, 'b': 4}, {'a': 3, 'b': 5}],
schema=schema
)
data = [{'a': 1, 'c': None, 'd': None},
{'a': 2, 'c': None, 'd': None},
{'a': 3, 'c': None, 'd': None}]
assert table.schema == schema
assert table.to_pylist() == data