apoc.import.arrow

过程 Apoc 扩展

apoc.import.arrow(input, $config) - 从提供的 Arrow 文件或字节数组中导入实体

签名

apoc.import.arrow(urlOrBinaryFile :: ANY?, config = {} :: MAP?) :: (file :: STRING?, source :: STRING?, format :: STRING?, nodes :: INTEGER?, relationships :: INTEGER?, properties :: INTEGER?, time :: INTEGER?, rows :: INTEGER?, batchSize :: INTEGER?, batches :: INTEGER?, done :: BOOLEAN?, data :: STRING?)

输入参数

名称 类型 默认

urlOrBinaryFile

ANY?

null

config

MAP?

{}

配置参数

此过程支持以下配置参数

表 1. 配置参数
名称 (name) type 默认 description(描述)

unwindBatchSize

整数

2000

unwind 的批处理大小

mapping(映射)

Map

{}

请参阅下方的 Mapping config(映射配置)示例

输出参数

名称 类型

file

STRING?

source

STRING?

format

STRING?

节点

整数?

relationships

整数?

属性

整数?

time

整数?

rows

整数?

batchSize

整数?

batches

整数?

done

布尔值?

data

STRING?

用法示例

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

CALL apoc.import.arrow("fileCreatedViaExportProcedures.arrow")
表 2. 结果
file source format 节点 relationships 属性 time rows batchSize batches done data

"fileCreatedViaExportProcedures.arrow"

"file"

"arrow"

3

1

15

105

4

-1

0

TRUE

NULL

我们还可以导入由 apoc.export.arrow.stream.* 过程创建的二进制 byte[] 文件。

CALL apoc.import.arrow(`<binaryArrow>`)

映射配置 (Mapping config)

为了导入 Parquet 不支持的复杂类型(如 Point、Duration、List of Duration 等),我们可以使用映射配置将其转换为所需的数据类型。例如,如果我们有一个节点 (:MyLabel {durationProp: duration('P5M1.5D')},并将其导出为 parquet 文件/二进制文件,我们可以通过指定一个 map 来导入它,其中键是属性键,值是属性类型。

即在本示例中,使用 load 过程

CALL apoc.load.arrow(fileOrBinary, {mapping: {durationProp: 'Duration'}})

或者使用 import 过程

CALL apoc.import.arrow(fileOrBinary, {mapping: {durationProp: 'Duration'}})

映射值的类型可以是以下之一

  • Point

  • LocalDateTime

  • LocalTime

  • DateTime

  • Time

  • Date

  • Duration

  • Char

  • Byte(字节)

  • 双精度浮点数

  • 浮点数

  • Short(短整型)

  • Int(整型)

  • Long

  • 节点

  • 关系

  • BaseType 后跟 Array,用于映射值列表,其中 BaseType 可以是上述类型之一,例如 DurationArray

© . This site is unofficial and not affiliated with Neo4j, Inc.