第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試將數(shù)據(jù)幀行映射到更新行時出現(xiàn)編碼器錯誤

嘗試將數(shù)據(jù)幀行映射到更新行時出現(xiàn)編碼器錯誤

嘗試將數(shù)據(jù)幀行映射到更新行時出現(xiàn)編碼器錯誤當(dāng)我試圖在我的代碼中做同樣的事情,如下所述dataframe.map(row => {   val row1 = row.getAs[String](1)   val make = if (row1.toLowerCase == "tesla") "S" else row1  Row(row(0),make,row(2))})我從這里采取了上述參考: Scala:如何使用scala替換Dataframs中的值 但是我收到編碼器錯誤無法找到存儲在數(shù)據(jù)集中的類型的編碼器。導(dǎo)入spark.im plicits支持原始類型(Int,S tring等)和產(chǎn)品類型(case類)._將在以后的版本中添加對序列化其他類型的支持。注意:我正在使用spark 2.0!
查看完整描述

2 回答

?
萬千封印

TA貢獻(xiàn)1891條經(jīng)驗 獲得超3個贊

對于預(yù)先知道數(shù)據(jù)幀模式的情況,@ zero323給出的答案是解決方案

但是對于具有動態(tài)模式/或?qū)⒍鄠€數(shù)據(jù)幀傳遞給泛型函數(shù)的場景:以下代碼對我們起作用,同時從1.5.0遷移到2.2.0

import org.apache.spark.sql.Rowval df = Seq(
   (2012, "Tesla", "S"), (1997, "Ford", "E350"),
   (2015, "Chevy", "Volt")
 ).toDF("year", "make", "model")val data = df.rdd.map(row => {
  val row1 = row.getAs[String](1)
  val make = if (row1.toLowerCase == "tesla") "S" else row1  Row(row(0),make,row(2))})

此代碼在兩個版本的spark上執(zhí)行。

缺點:數(shù)據(jù)幀/數(shù)據(jù)集api上的spark提供的優(yōu)化不會被應(yīng)用。


查看完整回答
反對 回復(fù) 2019-08-12
  • 2 回答
  • 0 關(guān)注
  • 536 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號