小编Ana*_*d K的帖子

Spark from_avro() dataframe.show() 错误 java.lang.ArrayIndexOutOfBoundsException

我使用 to_avro 将数据帧字段转换为 avro 字段结构,然后使用 from_avro 返回,如下所示。最终我想将 avro 有效负载流式传输到 kafka 写入/读取。当我尝试通过执行 df.show() 打印最终重新转换的数据帧时,出现 java.lang.ArrayIndexOutOfBoundsException 错误。df.printSchema 显示模式正确。

我正在使用 Spark 2.4.0 和 scala 2.11

我究竟做错了什么。字段中的空值是否会导致此问题?如果是这样,解决办法是什么?

这是代码

import org.apache.spark.sql.{ Row, SparkSession, Column, functions }
import org.apache.spark.sql._
import org.apache.spark.sql.functions._
import org.apache.spark.sql.types._
import org.apache.spark.sql.avro._
import java.nio.file.{Files, Paths}

    val spark = SparkSession
      .builder()
      .appName("Spark SQL basic example")
      .master("local[*]")
      .getOrCreate()
    spark.sparkContext.setLogLevel("WARN")

    import spark.implicits._

    val jsonDS = spark.createDataset( 
                  """{  "name": "Alyssa", "favorite_color": null,  "favorite_numbers": [3, 9, 15, 20] } """ ::
                  """{  "name": "Ben",    "favorite_color": "red", "favorite_numbers": [] …
Run Code Online (Sandbox Code Playgroud)

scala avro apache-kafka apache-spark spark-avro

5
推荐指数
1
解决办法
1178
查看次数

标签 统计

apache-kafka ×1

apache-spark ×1

avro ×1

scala ×1

spark-avro ×1