spark异常 - Null value appeared in non-nullable field
生活随笔
收集整理的這篇文章主要介紹了
spark异常 - Null value appeared in non-nullable field
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
主要代碼如下
val rdd=sc.newAPIHadoopRDD(hBaseConf, classOf[TableInputFormat], classOf[ImmutableBytesWritable],classOf[Result])import spark.implicits._val value :RDD[UserSchemaClass]= rdd.map(convertHive)val tempDS = value .toDF()tempDS.createTempView("test_table")spark.sql("desc test_table").show(false)spark.sql("select `name` from test_table limit 10").show(false)這里描述一下converHive函數的一個功能:將查出來的數據進行過濾,符合條件返回? UserSchemaClass? 不符合條件返回空
?提交運行報錯如下
Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0, localhost, executor driver): java.lang.NullPointerException: Null value appeared in non-nullable field: top level Product input object If the schema is inferred from a Scala tuple/case class, or a Java bean, please try to use scala.Option[_] or other nullable types (e.g. java.lang.Integer instead of int/scala.Int).原因是rdd為空時轉換 DataFrame 或者 DataSet?,查詢時會報錯 ,所以轉換時 不要將空轉換
修改如下代碼
val value :RDD[UserSchemaClass]= rdd.map(convertHive).filter(_!=null)?
總結
以上是生活随笔為你收集整理的spark异常 - Null value appeared in non-nullable field的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Kerberos 下运行spark 报错
- 下一篇: UML序列图