Skip to content

Commit 8de5d4f

Browse files
Mention vector and array handling for parquet files (#3151)
This pull request updates the import documentation to clarify the handling of array and vector data when importing from CSV and Parquet files. The changes explain when delimiter options are needed, and how Parquet `LIST` typed columns are mapped to Cypher types, reducing the need for explicit configuration in many cases. --------- Co-authored-by: Reneta Popova <reneta.popova@neo4j.com>
1 parent 9565939 commit 8de5d4f

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

modules/ROOT/pages/import.adoc

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ The xref:import.adoc#import-tool-examples[examples] for CSV can also be used wit
191191
|--array-delimiter=<char>
192192
|Delimiter character between array elements within a value in CSV data. Also accepts `TAB` and e.g. `U+20AC` for specifying a character using Unicode.
193193
For CSV data, this value must be different from the one specified in the `--delimiter` option.
194+
For Parquet data, this is only needed if the array is encoded as a string.
194195

195196
====
196197
* ASCII character -- e.g. `--array-delimiter=";"`.
@@ -518,6 +519,7 @@ performance, this value should not be greater than the number of available proce
518519
|--vector-delimiter=<char>
519520
|label:new[Introduced in 2025.10] Delimiter character between vector coordinates within a value in CSV data. Also accepts `TAB` and e.g. `U+20AC` for specifying a character using Unicode.
520521
For CSV data, this value must be different from the one specified in the `--delimiter` option.
522+
For Parquet data, this is only needed if the vector is encoded as a string.
521523
|;
522524
| {check-mark}
523525
| {check-mark}
@@ -912,6 +914,7 @@ If the database into which you import does not exist prior to importing, you mus
912914
|--array-delimiter=<char>
913915
|Delimiter character between array elements within a value in CSV data. Also accepts `TAB` and e.g. `U+20AC` for specifying a character using Unicode.
914916
For CSV data, this value must be different from the one specified in the `--delimiter` option.
917+
For Parquet data, this is only needed if the array is encoded as a string.
915918

916919
====
917920
* ASCII character -- e.g. `--array-delimiter=";"`.
@@ -1240,6 +1243,7 @@ If not specifically provided, the default temp path will be created inside the d
12401243
|--vector-delimiter=<char>
12411244
|label:new[Introduced in 2025.10] Delimiter character between vector coordinates within a value in CSV data. Also accepts `TAB` and e.g. `U+20AC` for specifying a character using Unicode.
12421245
For CSV data, this value must be different from the one specified in the `--delimiter` option.
1246+
For Parquet data, this is only needed if the vector is encoded as a string.
12431247
|;
12441248
| {check-mark}
12451249
| {check-mark}
@@ -1596,6 +1600,9 @@ A different delimiter can be specified with `--array-delimiter`.
15961600
Arrays are not affected by the `--normalize-types` flag.
15971601
For example, if you want a byte array to be stored as a Cypher long array, you must explicitly declare the property as `long[]`.
15981602

1603+
Array values can also be sourced directly from a `LIST` typed column with Parquet files, in which case the `--array-delimiter` option is not needed.
1604+
Furthermore, values read from `LIST` typed columns are mapped to their corresponding Cypher types, e.g., `LIST<INT>` is mapped to `int[]`, `LIST<STRING>` is mapped to `string[]`, and so on, and there is no need to specify the type in the header.
1605+
15991606
[NOTE]
16001607
====
16011608
CSV-based import does not import empty arrays, because they cannot be distinguished from arrays that are set to `null`.
@@ -1713,9 +1720,6 @@ The map must specify both the `coordinateType` and the `dimensions` of the vecto
17131720
The `coordinateType` can be one of `byte`, `short`, `int`, `long`, `float`, or `double`.
17141721
The `dimensions` must be between 1 and 4096, inclusive.
17151722

1716-
By default, vector values are separated by `;`.
1717-
A different delimiter can be specified with `--vector-delimiter`.
1718-
17191723
The dimensions of each vector in the data must match what is specified in the header.
17201724

17211725
A vector in a header could for example look like this:
@@ -1725,6 +1729,11 @@ A vector in a header could for example look like this:
17251729
----
17261730

17271731
Note that quotation marks are necessary, since the `,` inside the map would otherwise be interpreted as a column delimiter.
1732+
1733+
With CSV files and Parquet files where vector values are encoded as strings, by default, vector values are separated by `;`.
1734+
A different delimiter can be specified with `--vector-delimiter`.
1735+
1736+
Starting with Neo4j 2026.06, vector values can also be sourced from a `LIST` typed column with Parquet files, in which case the `--vector-delimiter` option is not needed.
17281737
--
17291738

17301739
[[import-tool-id-spaces]]

0 commit comments

Comments
 (0)