This is an automated email from the ASF dual-hosted git repository.

diwu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris-spark-connector.git


The following commit(s) were added to refs/heads/master by this push:
     new f1e402a  [fix](load) fix npe when array is null (#147)
f1e402a is described below

commit f1e402a7467dfe041e3d34425c586c8e129c48b9
Author: daikon <1059907...@qq.com>
AuthorDate: Wed Oct 25 15:19:51 2023 +0800

    [fix](load) fix npe when array is null (#147)
---
 .../scala/org/apache/doris/spark/sql/SchemaUtils.scala     | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git 
a/spark-doris-connector/src/main/scala/org/apache/doris/spark/sql/SchemaUtils.scala
 
b/spark-doris-connector/src/main/scala/org/apache/doris/spark/sql/SchemaUtils.scala
index 44baa95..e806059 100644
--- 
a/spark-doris-connector/src/main/scala/org/apache/doris/spark/sql/SchemaUtils.scala
+++ 
b/spark-doris-connector/src/main/scala/org/apache/doris/spark/sql/SchemaUtils.scala
@@ -32,7 +32,6 @@ import org.slf4j.LoggerFactory
 import java.sql.Timestamp
 import java.time.{LocalDateTime, ZoneOffset}
 import scala.collection.JavaConversions._
-import scala.collection.mutable
 
 private[spark] object SchemaUtils {
   private val logger = 
LoggerFactory.getLogger(SchemaUtils.getClass.getSimpleName.stripSuffix("$"))
@@ -166,13 +165,14 @@ private[spark] object SchemaUtils {
       case dt: DecimalType => row.getDecimal(ordinal, dt.precision, dt.scale)
       case at: ArrayType =>
         val arrayData = row.getArray(ordinal)
-        var i = 0
-        val buffer = mutable.Buffer[Any]()
-        while (i < arrayData.numElements()) {
-          if (arrayData.isNullAt(i)) buffer += null else buffer += 
rowColumnValue(arrayData, i, at.elementType)
-          i += 1
+        if (arrayData == null) DataUtil.NULL_VALUE
+        else if(arrayData.numElements() == 0) "[]"
+        else {
+          (0 until arrayData.numElements()).map(i => {
+            if (arrayData.isNullAt(i)) null else rowColumnValue(arrayData, i, 
at.elementType)
+          }).mkString("[", ",", "]")
         }
-        s"[${buffer.mkString(",")}]"
+
       case mt: MapType =>
         val mapData = row.getMap(ordinal)
         val keys = mapData.keyArray()


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to