apoc.export.arrow.stream.query

Procedure

apoc.export.arrow.stream.query(query ANY, config MAP<STRING, ANY>) - exports the given Cypher query as an arrow byte array.

It is considered unsafe to run this procedure using 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.

Signature

apoc.export.arrow.stream.query(query :: ANY, config = {} :: MAP) :: (value :: LIST<INTEGER>)

Input parameters

Name Type Default

query

ANY

null

config

MAP

null

Output parameters

Name Type

value

LIST<INTEGER>

Config parameters

The procedure support the following config parameters:

Table 1. Config parameters
name type default description

batchSize

Integer

2000

the batch size of the ArrowStreamWriter

Usage Examples

Let’s suppose we have this data set:

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 {name: 'John', age:12}),(d:Another {foo: 'bar'})

With this query:

CALL apoc.export.arrow.stream.query('MATCH (n:User) RETURN count(n) as count, n.name as name')
YIELD value RETURN value

We’ll have a table with the following columns:

  • count

  • name