apoc.export.arrow.stream.graph

This procedure is not considered safe to run from multiple threads. It is therefore not supported by the parallel runtime (introduced in Neo4j 5.13). For more information, see the Cypher Manual → Parallel runtime.

Details

Syntax

apoc.export.arrow.stream.graph(graph [, config ]) :: (value)

Description

Exports the given graph as an arrow byte array.

Input arguments

Name

Type

Description

graph

ANY

The graph to export.

config

MAP

{ batchSize = 2000 :: INTEGER }. The default is: {}.

Return arguments

Name

Type

Description

value

BYTEARRAY

The data as a bytearray.

Usage Examples

The procedure expose an Arrow byte[] for each batch of rows with the following structure - <id>: for node id - <labels>: list of labels - <source.id>: source node id (in case of relationship) - <target.id>: target node id (in case of relationship) - <type>: for relationship type - the list of properties of nodes and relationships flattened as table

So for the following query:

CREATE (f:User {name:'Adam',age:42,male:true,kids:['Sam','Anna','Grace'], born:localdatetime('2015185T19:32:24'), place:point({latitude: 13.1, longitude: 33.46789})})-[:KNOWS {since: 1993, bffSince: duration('P5M1.5D')}]->(b:User {name:'Jim',age:42}),(c:User {age:12}),(d:Another {foo: 'bar'})

With this query:

CALL apoc.graph.fromDB('neo4j',{}) yield graph
CALL apoc.export.arrow.stream.graph(graph)
YIELD value RETURN value"

We’ll have a table with the following columns:

  • <id>

  • <labels>

  • <source.id>

  • <target.id>

  • <type>

  • name

  • age

  • male

  • kids

  • born

  • place

  • since

  • bffSince