Github user dbtsai commented on a diff in the pull request:

    https://github.com/apache/spark/pull/21847#discussion_r206353416
  
    --- Diff: 
external/avro/src/main/scala/org/apache/spark/sql/avro/AvroSerializer.scala ---
    @@ -120,7 +133,7 @@ class AvroSerializer(rootCatalystType: DataType, 
rootAvroType: Schema, nullable:
     
           case MapType(kt, vt, valueContainsNull) if kt == StringType =>
             val valueConverter = newConverter(
    -          vt, resolveNullableType(avroType.getValueType, 
valueContainsNull))
    +          vt, resolveUnionType(avroType.getValueType, vt, 
valueContainsNull))
    --- End diff --
    
    ditto for MapType,
    
    ```scala
            (getter, ordinal) =>
              val mapData = getter.getMap(ordinal)
              val length = mapData.numElements()
              val result = new java.util.HashMap[String, Any](length)
              val keyArray = mapData.keyArray()
              val valueArray = mapData.valueArray()
              var i = 0
              while (i < length) {
                val key = keyArray.getUTF8String(i).toString
                if (valueContainsNull && valueArray.isNullAt(i)) {
                  result.put(key, null)
                } else {
                  result.put(key, valueConverter(valueArray, i))
                }
                i += 1
              }
              result
    ```


---

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

Reply via email to