Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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
Javascript 如何正确读取pyarrow生成的Apache Arrow Feather文件?_Javascript_Python_Apache Arrow_Feather - Fatal编程技术网

Javascript 如何正确读取pyarrow生成的Apache Arrow Feather文件?

Javascript 如何正确读取pyarrow生成的Apache Arrow Feather文件?,javascript,python,apache-arrow,feather,Javascript,Python,Apache Arrow,Feather,我没有成功地用python脚本生成的javascript阅读Apache Arrow Feather。我正在使用ApacheArrow项目中的pyarrow和arrow/js 我创建了一个简单的python脚本来创建Feather文件: import pyarrow as pa import pyarrow.feather as feather # create a simple feather table to assess reading in JS with arrow/js int_a

我没有成功地用python脚本生成的javascript阅读Apache Arrow Feather。我正在使用ApacheArrow项目中的pyarrow和arrow/js

我创建了一个简单的python脚本来创建Feather文件:

import pyarrow as pa
import pyarrow.feather as feather

# create a simple feather table to assess reading in JS with arrow/js
int_array = pa.array(list(range(10)))
int_schema = pa.schema([pa.field('Numbers_schema', pa.uint32())])
int_table = pa.Table.from_arrays([int_array], schema=int_schema)

feather.write_feather(int_table, 'simple.arrow', version=2)
如果我在python中读取“simple.arrow”文件并将其输出到Jupyter笔记本中,我会得到预期的结果:

| |Numbers_schema|
|--|-------------|
|0|0|
|1|1|
|2|2|
|3|3|
|4|4|
|5|5| 
等等

但是,如果我使用简单的Javascript实现或js库提供的实现读取文件,则生成的数据如下所示(忽略索引,输出来自arrow2csv.js输出,使用从1开始的索引):

等等

所以基本上,所有应该是UInt32的值都是不正确的。在我看来,JS实现似乎没有正确读取Feather文件。这是一个bug还是我误解了Feather文件格式及其使用

致以最良好的祝愿


-Toni

默认情况下,feather.write_feather()使用LZ4压缩,但javascript库不支持R/Python/C++实现中的任何一种压缩标准

如果希望能够使用Arrow JS库进行读取,则在从Python编写时必须将
compression=“uncompressed”
作为参数传递


通常,当我试图在JS中读取压缩的feather文件时,会出现错误,因为该文件比预期的字节数短;我猜这里的数据足够短,JS实现从页脚抓取了一些任意字节,并试图将它们解释为“数字”列的一部分。

太棒了!这确实是我问题的根源。在Python端设置
compression=“uncompressed”
是正确的做法。非常感谢你,本!
| |"Numbers_schema: UInt32"|
|--|------------------------------|
|1|40|
|2|0|
|3|407708164|
|4|679624800|
|5|8388608|