加载和导入 Arrow

以下过程允许您读取通过 apoc.export.arrow.* 过程导出的 Apache Arrow 文件。它也可能读取未通过导出过程创建的其他 Apache Arrow 文件。

过程和函数概览

下表描述了可用的过程和函数

限定名 类型

apoc.load.arrow
apoc.load.arrow(file STRING, config MAP<STRING, ANY>) - 从提供的 Arrow 文件加载值。

过程

apoc.load.arrow.stream.adoc
apoc.load.arrow.stream(source LIST<INTEGER>, config MAP<STRING, ANY>) - 从提供的 Arrow 字节数组加载值。

过程

apoc.import.arrow
apoc.import.arrow(urlOrBinaryFile ANY, config MAP<STRING, ANY>) - 从提供的 Arrow 文件或字节数组导入实体

过程

apoc.load.arrow

此过程接受文件或 HTTP URL,并将 Apache Arrow 解析为映射数据结构。

签名

apoc.load.arrow(file :: STRING, config = {} :: MAP) :: (value :: MAP)

目前,此过程不支持任何配置参数。

默认情况下,从文件系统导入是被禁用的。我们可以通过在 apoc.conf 中设置以下属性来启用它

apoc.conf
apoc.import.file.enabled=true

如果我们尝试在未首先设置此属性的情况下使用任何导入过程,我们将收到以下错误消息

Failed to invoke procedure: Caused by: java.lang.RuntimeException: Import from files not enabled, please set apoc.import.file.enabled=true in your apoc.conf

导入文件从 import 目录读取,该目录由 server.directories.import 属性定义。这意味着我们提供的任何文件路径都是相对于此目录的。如果我们尝试从绝对路径(例如 /tmp/filename)读取,我们将收到类似于以下内容的错误消息

Failed to invoke procedure: Caused by: java.lang.RuntimeException: Can’t read url or key file:/path/to/neo4j/import/tmp/filename as json: /path/to/neo4j//import/tmp/filename (No such file or directory)

我们可以通过在 apoc.conf 中设置以下属性来启用从文件系统上的任何位置读取文件

apoc.conf
apoc.import.file.use_neo4j_config=false

现在 Neo4j 将能够从文件系统上的任何位置读取,因此在设置此属性之前请确保这是您的意图。

apoc.load.arrow.stream

此过程接受字节数组源,并将 Apache Arrow 解析为映射数据结构。

签名

apoc.load.arrow.stream(source :: LIST<INTEGER>, config = {} :: MAP) :: (value :: MAP)

目前,此过程不支持任何配置参数。

示例

以下部分包含从各种 Apache Arrow 源导入数据的示例。

从本地文件导入

采用此示例的输出

以下查询处理 test.arrow 文件,并将内容作为 Cypher 数据结构返回
CALL apoc.load.arrow('test.arrow')
YIELD value
RETURN value
表 1. 结果

{arrayArray → ["[0]"], dateData → 2015-05-18T19:32:24Z, boolArray → [true,false,true], intArray → [1,2,3], mapData → "{"foo":"bar"}", boolData → true, intData → 1, mixedArray → ["1","2","true",<null>], doubleArray → [1.1,2.2,3.3], doubleData → 1.1, stringData → "a"}

从二进制源导入

采用此示例的输出

以下查询处理 test.arrow 文件,并将内容作为 Cypher 数据结构返回
CALL apoc.load.arrow.stream('<binary arrow file>')
YIELD value
RETURN value
表 2. 结果

{arrayArray → ["[0]"], dateData → 2015-05-18T19:32:24Z, boolArray → [true,false,true], intArray → [1,2,3], mapData → "{"foo":"bar"}", boolData → true, intData → 1, mixedArray → ["1","2","true",<null>], doubleArray → [1.1,2.2,3.3], doubleData → 1.1, stringData → "a"}

导入 Export Arrow 程序创建的 Arrow 文件

导入由 Export Arrow 过程创建的 Arrow 文件

apoc.import.arrow 过程可用于导入由 apoc.export.arrow.* 过程创建的 Apache Arrow 文件。

此过程不应与 apoc.load.arrow* 过程混淆,后者仅加载 Arrow 文件的值,而不创建数据库中的实体。

© . All rights reserved.