Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays AwkwardArray:是否可以将数组附加到现有的拼花地板文件中?_Arrays_Python 3.x_Dataset_Parquet_Awkward Array - Fatal编程技术网

Arrays AwkwardArray:是否可以将数组附加到现有的拼花地板文件中?

Arrays AwkwardArray:是否可以将数组附加到现有的拼花地板文件中?,arrays,python-3.x,dataset,parquet,awkward-array,Arrays,Python 3.x,Dataset,Parquet,Awkward Array,是否可以使用(awkward0)附加到现有的拼花地板文件(由AwkwardArray编写)中 普通拼花地板 下面的代码创建了一个镶木地板文件,其中包含一些笨拙的数组(例如音频数据): 将numpy导入为np 像awk一样导入 导入pyarrow.parquet作为pq #使用numpy数组从dict创建表格 awk_array=awk.fromiter([{“ch0”:np.array([0,1,2]),“ch1”:np.array([3,4,5]), {“ch0”:np.array([6,7]

是否可以使用(
awkward0
)附加到现有的拼花地板文件(由AwkwardArray编写)中

普通拼花地板 下面的代码创建了一个镶木地板文件,其中包含一些笨拙的数组(例如音频数据):

将numpy导入为np
像awk一样导入
导入pyarrow.parquet作为pq
#使用numpy数组从dict创建表格
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_数组.tolist()
#[{'ch0':[0,1,2],'ch1':[3,4,5]},{'ch0':[6,7],'ch1':[8,9]}]
#以拼花格式保存
awk.toparquet(“音频拼花”,awk_阵列)
#检查是否可以再次成功加载;成功
awk.fromparquet(“audio.parquet”)[“ch0”].tolist()
# [[0, 1, 2], [6, 7]]
附加拼花地板(无尴尬) 在中,可以使用以下内容扩展拼花地板文件:

使用pq.parquetwitter('example3.parquet',table.schema)作为编写器:
对于范围(3)中的i:
writer.write_表(table)
问题: 使用笨拙的数组时可能出现这种情况吗

akw_数组=[]
akw_array.append(awk.fromiter([{“ch0”:np.array([0,1,2]),“ch1”:np.array([3,4,5]))
akw_array.append(awk.fromiter([{“ch0”:np.array([6,7]),“ch1”:np.array([8,9]))
#笨拙的表模式
使用pq.parquetwitter(“audio_append.parquet”,awk.table.schema)作为编写器:
对于范围内的i(len(akw_阵列)):
writer.write_表(akw_数组[i])
类似于使用
笨拙的.table.schema
笨拙的.parquetwitter()

实际上,我并不是同时拥有两个数组。因此,在写入之前进行连接是不可能的


或者说,唯一的可能是使用类似的东西,并在最后将所有内容立即写入磁盘?

答案是否定的,但没有理由不这样做。如您所示,您可以将其附加到拼花地板上,事实上,在编写
chunkedArray
()时使用此选项。一个不同的接口,重用您在那里看到的大部分代码,可以使拼花地板文件保持打开状态以进行附加。这对于大型数据集非常有用

由于拼花文件是从页脚导航的(根据文件末尾的定义),因此我认为拼花文件在关闭后不可追加。(必须有一些东西使原始页脚无效或覆盖。)因此,这个用于迭代写入拼花地板文件的笨拙接口必须在
with
块中打开拼花地板文件,以确保此页脚只写入一次