日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解决升级Spark2.0之后,DataFrame map操作报错

發布時間:2024/1/17 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决升级Spark2.0之后,DataFrame map操作报错 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當我們在使用spark1.6的時候,當我們創建SQLContext讀取一個文件之后,返回DataFrame類型的變量可以直接.map操作,不會報錯。但是升級之后會包一個錯誤,如下:

  報錯:No implicits found for parameter evidence$6: Encoder[Unit]

    

  主要的錯誤原因為: 

  ******error: Unable to find encoder for type stored in a Dataset. Primitive types (Int, String, etc) and Product types (case classes) are supported by importing spark.implicits._ Support for serializing other types will be added in future releases. resDf_upd.map(row => {******

  此時有三種解決方案:

  第一種:

    

  然后大家發現不會在報錯誤了。

  第二種:

  

  這樣也可以

  第三種:

  這種是最麻煩的一種,可以參考官網

  

  官網上給的是讓自定義一個 Encoders,然后下面是我根據官網的例子,寫的樣例:

  

  可以看到,也是可以用的,但是相比較上面兩個是非常的麻煩的,所以推薦第一種和第二種,強推第二種,簡單。

  說明:

    以上代碼中我用的是SparkSession創建的,當然也可以用SQLContext來創建,但是SQLContext已經過時,不再推薦。

    若是在用SQLContext時,遇到以上錯誤,同理解決。

總結

以上是生活随笔為你收集整理的解决升级Spark2.0之后,DataFrame map操作报错的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。