是否可以使用AwkwardArray ( awkward0
) 附加到现有的镶木地板文件(由 AwkwardArray 编写)?
正常尴尬的镶木地板存储
以下代码创建了一个 Parquet 文件,其中包含一些 Awkward 数组(例如音频数据):
import numpy as np
import awkward as awk
import pyarrow.parquet as pq
# create Awkward Table from dict with numpy arrays
awk_array = awk.fromiter([{"ch0": np.array([0, 1, 2]), "ch1": np.array([3, 4, 5])},
{"ch0": np.array([6, 7]), "ch1": np.array([8, 9])}])
awk_array.tolist()
# [{'ch0': [0, 1, 2], 'ch1': [3, 4, 5]}, {'ch0': [6, 7], 'ch1': [8, 9]}]
# save in Parquet format
awk.toparquet("audio.parquet", awk_array)
# check if we can successfully load again; success
awk.fromparquet("audio.parquet")["ch0"].tolist()
# [[0, 1, 2], [6, 7]]
附加 Parquet(没有尴尬)
在有关 Parquet 文件的 pyarrow 文档中,您可以使用以下命令扩展 Parquet 文件:
with pq.ParquetWriter('example3.parquet', table.schema) as writer:
for i in range(3):
writer.write_table(table)
问题
使用 Awkward 数组可能会发生这样的事情吗?:
akw_arrays = []
akw_arrays.append(awk.fromiter([{"ch0": np.array([0, 1, 2]), "ch1": np.array([3, 4, 5])}]))
akw_arrays.append(awk.fromiter([{"ch0": np.array([6, 7]), "ch1": np.array([8, 9])}]))
# Awkward table schema
with pq.ParquetWriter("audio_append.parquet", awk.table.schema) as writer:
for i in range(len(akw_arrays)):
writer.write_table(akw_arrays[i])
类似于 aawkward.table.schema
或 an 的awkward.ParquetWriter()
东西
实际上,我没有同时拥有两个数组。因此,在写入之前进行连接是不可能的。
或者是使用Apache Arrow之类的东西并在最后一次将所有内容写入磁盘的唯一可能性?