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?)
配置参数
此过程支持以下配置参数
| 名称 (name) | type | 默认 | description(描述) |
|---|---|---|---|
unwindBatchSize |
整数 |
|
unwind 的批处理大小 |
mapping(映射) |
Map |
|
请参阅下方的 |
输出参数
| 名称 | 类型 |
|---|---|
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")
| 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