diff --git a/athena-neptune/src/main/java/com/amazonaws/athena/connectors/neptune/propertygraph/rowwriters/CustomSchemaRowWriter.java b/athena-neptune/src/main/java/com/amazonaws/athena/connectors/neptune/propertygraph/rowwriters/CustomSchemaRowWriter.java index d3093fafce..f03b41cf5d 100644 --- a/athena-neptune/src/main/java/com/amazonaws/athena/connectors/neptune/propertygraph/rowwriters/CustomSchemaRowWriter.java +++ b/athena-neptune/src/main/java/com/amazonaws/athena/connectors/neptune/propertygraph/rowwriters/CustomSchemaRowWriter.java @@ -47,6 +47,7 @@ import java.util.Date; import java.util.Map; import java.util.TreeMap; +import java.util.stream.Collectors; /** * This class is a Utility class to create Extractors for each field type as per @@ -124,7 +125,14 @@ else if (fieldValue instanceof ArrayList) { else if (fieldValue instanceof ArrayList) { ArrayList objValues = (ArrayList) fieldValue; if (objValues != null && objValues.get(0) != null) { - value.value = objValues.get(0).toString(); + if (objValues.size() > 1) { + value.value = String.join(";", objValues.stream() + .map(Object::toString) + .collect(Collectors.toList())); + } + else { + value.value = objValues.get(0).toString(); + } value.isSet = 1; } } diff --git a/athena-neptune/src/main/java/com/amazonaws/athena/connectors/neptune/propertygraph/rowwriters/VertexRowWriter.java b/athena-neptune/src/main/java/com/amazonaws/athena/connectors/neptune/propertygraph/rowwriters/VertexRowWriter.java index 0ec439e1a7..79a0a50579 100644 --- a/athena-neptune/src/main/java/com/amazonaws/athena/connectors/neptune/propertygraph/rowwriters/VertexRowWriter.java +++ b/athena-neptune/src/main/java/com/amazonaws/athena/connectors/neptune/propertygraph/rowwriters/VertexRowWriter.java @@ -45,6 +45,7 @@ import java.util.Date; import java.util.Map; import java.util.TreeMap; +import java.util.stream.Collectors; /** * This class is a Utility class to create Extractors for each field type as per @@ -96,8 +97,15 @@ public static void writeRowTemplate(RowWriterBuilder rowWriterBuilder, Field fie } else { ArrayList objValues = (ArrayList) obj.get(fieldName); - if (objValues != null && objValues.get(0) != null) { - value.value = objValues.get(0).toString(); + if (objValues != null && !objValues.isEmpty()) { + if (objValues.size() > 1) { + value.value = String.join(";", objValues.stream() + .map(Object::toString) + .collect(Collectors.toList())); + } + else { + value.value = objValues.get(0).toString(); + } value.isSet = 1; } }