问题标签 [apache-arrow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-arrow - 示例代码编译期间的 Apache 箭头错误
在我的电脑上安装 apache 箭头库后,我尝试在网站上运行 c++ 代码示例(https://github.com/apache/arrow/blob/master/cpp/examples/arrow/row-wise-conversion-example .cc)但始终不断收到相同的错误。我虽然是因为编译器找不到箭头目录,但是将库放在与测试相同的文件夹后,它仍然没有运行并一直给出相同的错误。
pyarrow - Pyarrow table memory compared to raw csv size
I have a 2GB CSV file that I read into a pyarrow table with the following:
When I call tbl.nbytes
I get 3.4GB. I was surprised at how much larger the csv was in arrow memory than as a csv. Maybe I have a fundamental misunderstanding of what pyarrow is doing under the hood but I thought if anything it would be smaller due to its columnar nature (i also probably could have squeezed out more gains using ConvertOptions but i wanted a baseline). I definitely wasnt expecting an increase of almost 75%. Also when I convert it from arrow table to pandas df the df took up roughly the same amount of memory as the csv - which was expected.
Can anyone help explain the difference in memory for arrow tables compared to a csv / pandas df.
Thx.
UPDATE
Full code and output below.
python-3.x - 带有 Tensorflow 的 Apache Arrow:类型错误:箭头类型不匹配:预期 dtype=2,但得到 dtype=9
我正在学习Arrow结合TensorFlow,根据这个博客,我写了一个mnist的例子。
我的问题是为什么要对数据进行预处理,否则会报错:
tensorflow.python.framework.errors_impl.InternalError:类型错误:箭头类型不匹配:预期 dtype=2,但得到 dtype=9 [[node IteratorGetNext(定义在 home/maqy/tensorflowDemo/arrowDemo/mnist/arrow_mnist_local.py:35) ]] [操作:__inference_distributed_function_1455]
预处理的主要代码片段如下:
完整代码如下,关键是使用df_scaled = pd.DataFrame(df) // 出现这个错误或者df_scaled = pd.DataFrame(my_dict) // 这个可以
完整的日志如下:
typescript - 在浏览器应用程序中使用 apache-arrow - Typescript 编译器错误
尝试在浏览器应用程序中使用 apache-arrow,但 typescript 编译器在某些箭头的 .d.ts 文件中引发以下错误
node_modules/@apache-arrow/es2015-esm/column.d.ts:14:22 - 错误 TS2417:类静态侧“typeof 列”错误地扩展了基类静态侧“typeof Chunked”。“新”属性的类型不兼容。
node_modules/@apache-arrow/es2015-esm/ipc/reader.d.ts:238:5 - 错误 TS2717:后续属性声明必须具有相同的类型。属性“模式”必须是“模式”类型,但这里有“模式”类型。
238模式:模式;
node_modules/@apache-arrow/es2015-esm/recordbatch.d.ts:17:18 - 错误 TS2430:接口“RecordBatch”错误地扩展了接口“StructVector”。'slice(...).clone' 的类型在这些类型之间不兼容。
tsconfig.json 文件看起来像
c++ - 如何在 Apache Arrow 的 Parquet 文件的每一行中获取重复字段的最后一个值?
假设我正在对 Parquet 文件的每一行做一些事情,并且每一行都有一个名为的字段,该字段myList
是重复的和字符串。如何获得myList
每行的最后一个值?
此示例使用 avector
来存储所有值。有什么方便的方法可以直接获取每行重复字段的最后一个值吗?
我的代码是这样的:
谢谢~
parquet - 如何读取箭头拼花键值元数据?
当我在 R 和 Python 中保存一个镶木地板文件(使用 pyarrow)时,我得到一个保存在元数据中的箭头模式字符串。
如何读取元数据?是 Flatbuffer 编码的数据吗?架构的定义在哪里?它未在箭头文档站点上列出。
元数据是一个键值对,看起来像这样
由于在 R 中写了这个
rust - 如何附加到现有的 apache 箭头数组
我可以创建一个箭头数组builder
:
但是,一旦我完成了数组的构建(因此称为.finish
),是否有任何选项可以使用数据创建一个新builder
的finished_array
而不将数据复制到一个新的中builder
?
我基本上想要的是便宜的append
手术。
c++ - 问:Apache Arrow 数组生成器 UnsafeAppend
我正在研究数组构建器 UnsafeAppend api。根据文档中的代码。
Builder.Resize(i) 应该为 i 值腾出空间。将 i 更改为另一个值(例如 100000000)后,我应该有 100000000 个值的空间。我的编译器出现了分段错误,这很奇怪。我做了另一个实验,将构建器的大小调整为 10。构建器应该只有 10 个空间,但是我的代码可以成功地将比 10 更多的值附加到构建器。
我有点困惑,构建器不应该具有与 api Resize(i) 完全相同的空间 i。有谁知道 UnsafeAppend API 的任何正确方法?
python - pyarrow将字符串转换为表中的dict数组而不去熊猫
我有一个日常流程,我在其中读取历史parquet
数据集,然后每天将其与一个新文件连接起来。我试图通过更好地利用箭头字典数组来优化内存。我想避免系统地(并且不定义列)往返于 pandas 以获得分类。
我想知道如何在pyarrow
.
我目前这样做:
我处理了许多文件,并希望避免为每个文件维护一个架构,在其中列出每列的字典列并将其用作 csv 的读取选项。在没有列规范的情况下使用 pandas 的便利性strings_to_categorical=True
非常好。从我所看到的情况来看,没有办法strings_to_dict
在pyarrow
.
有没有干净的方法可以在 pyarrow 中做到这一点?
java - 在 Eclipse 中安装 Apache Arrow Java
我目前正在尝试在 Eclipse 中安装 Apache Arrow for Java 并且遇到了一些麻烦。
我在https://search.maven.org/search?q=g:org.apache.arrow%20AND%20v:0.17.1上找到了 Java 包
因为没有找到任何安装的信息,所以只下载了所有的jar文件:
- 箭头性能-0.17.1.jar
- 箭头算法-0.17.1.jar
- 箭头-avro-0.17.1.jar
- 飞行-grpc-0.17.1.jar
- 飞行核心0.17.1.jar
- 箭头等离子0.17.1.jar
- 箭头-jdbc-0.17.1.jar
- 箭头工具-0.17.1.jar
- 箭头矢量0.17.1.jar
- 箭头内存0.17.1.jar
- 箭头格式-0.17.1.jar
然后,我在 Eclipse 中创建了一个新的 Java 项目,并将所有 jar 文件复制到所述项目中的文件夹“lib”中。然后,我将它们添加到Project -> Properties -> Java Build Path -> Libraries -> Add JARs
并选择了我的“lib”文件夹中的所有 jar 并应用。
之后,我尝试运行我在https://github.com/animeshtrivedi/blog/blob/master/post/2017-12-26-arrow.md上找到的以下 java 代码:
我收到以下错误消息:
当我转到 时Referenced Libraries -> arrow-vector-0.17.1.jar -> org.apache.arrow.vector.types.pojo -> Field.class
,它显示“未找到源”,如下所示。我需要手动附加源吗?
在我下载 jar 文件的 Apache Arrow 网站上,我还可以下载“...sources.jar”文件。我还需要下载这些并将它们添加到“Java Build Path”吗?(这似乎是很多工作)。
还有一个“arrow-java-root”zip 文件夹,我可以用它来添加库吗?
我不熟悉向 Java 添加库,所以我不知道如何解决这个问题。任何帮助表示赞赏。
(我在 Windows 10、Java 8 上)
解决方案:
我将我的项目转换为 Maven 项目 ( Configure -> Convert to Maven Project
) 并添加了依赖项"arrow-java-root"
。( https://stackoverflow.com/a/26350902 ) 感谢 andrewjames 指出这一点。
但是,我现在在运行程序时收到以下消息:
但是程序仍然正确终止,因为如果我添加:
它在上面的消息之后打印该字段。