Spark 2.0 DataFrame map操作中Unable to find encoder for type stored in a Dataset.問題的分析與解決

摘自:http://blog.csdn.net/sparkexpert/article/details/52871000
還可以參看:https://stackoverflow.com/questions/39517980/spark-error-unable-to-find-encoder-for-type-stored-in-a-dataset
隨著新版本的Spark已經(jīng)逐漸穩(wěn)定,最近擬將原有框架升級到spark 2.0橘沥。還是比較興奮的窗轩,特別是SQL的速度真的快了許多座咆。。

然而介陶,在其中一個(gè)操作時(shí)卻卡住了堤舒。主要是dataframe.map操作哺呜,這個(gè)之前在spark 1.X是可以運(yùn)行的,然而在spark 2.0上卻無法通過某残。。

看了提醒的問題驾锰,主要是:
******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 => {******

針對這個(gè)問題,網(wǎng)上所得獲取的資料還真不多走越。不過想著肯定是dataset統(tǒng)一了datframe與rdd之后就出現(xiàn)了新的要求。

經(jīng)過查看spark官方文檔旨指,對spark有了一條這樣的描述。

Dataset is Spark SQL’s strongly-typed API for working with structured data, i.e. records with a known schema.

Datasets are lazy and structured query expressions are only triggered when an action is invoked. Internally, aDataset
represents a logical plan that describes the computation query required to produce the data (for a givenSpark SQL session).

A Dataset is a result of executing a query expression against data storage like files, Hive tables or JDBC databases. The structured query expression can be described by a SQL query, a Column-based SQL expression or a Scala/Java lambda function. And that is why Dataset operations are available in three variants.

從這可以看出谆构,要想對dataset進(jìn)行操作,需要進(jìn)行相應(yīng)的encode操作搬素。特別是官網(wǎng)給的例子

// No pre-defined encoders for Dataset[Map[K,V]], define explicitlyimplicit val mapEncoder = org.apache.spark.sql.Encoders.kryo[Map[String, Any]]// Primitive types and case classes can be also defined as// implicit val stringIntMapEncoder: Encoder[Map[String, Any]] = ExpressionEncoder()// row.getValuesMap[T] retrieves multiple columns at once into a Map[String, T]teenagersDF.map(teenager => teenager.getValuesMapAny)).collect()// Array(Map("name" -> "Justin", "age" -> 19))

從這看出呵晨,要進(jìn)行map操作熬尺,要先定義一個(gè)Encoder。粱哼。

這就增加了系統(tǒng)升級繁重的工作量了季二。為了更簡單一些,幸運(yùn)的dataset也提供了轉(zhuǎn)化RDD的操作胯舷。因此只需要將之前dataframe.map

在中間修改為:dataframe.rdd.map即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桑嘶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子不翩,更是在濱河造成了極大的恐慌兵扬,老刑警劉巖口蝠,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異妙蔗,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)眉反,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門昙啄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寸五,“玉大人,你說我怎么就攤上這事梳杏∪途埽” “怎么了十性?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長劲适。 經(jīng)常有香客問我,道長霞势,這世上最難降的妖魔是什么烹植? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任愕贡,我火速辦了婚禮,結(jié)果婚禮上颂鸿,老公的妹妹穿的比我還像新娘促绵。我一直安慰自己,他們只是感情好败晴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著尖坤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪慢味。 梳的紋絲不亂的頭發(fā)上场梆,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天纯路,我揣著相機(jī)與錄音,去河邊找鬼驰唬。 笑死顶岸,一個(gè)胖子當(dāng)著我的面吹牛叫编,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播搓逾,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼卷谈,長吁一口氣:“原來是場噩夢啊……” “哼霞篡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寇损,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤裳食,失蹤者是張志新(化名)和其女友劉穎矛市,沒想到半個(gè)月后诲祸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡救氯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了着憨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片墩衙。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖心铃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情挫剑,我是刑警寧澤去扣,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布樊破,位于F島的核電站,受9級特大地震影響哲戚,放射性物質(zhì)發(fā)生泄漏奔滑。R本人自食惡果不足惜惫恼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望祈纯。 院中可真熱鬧令宿,春花似錦腕窥、人聲如沸粒没。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽入蛆。三九已至响蓉,卻和暖如春哨毁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扼褪。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工想幻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留话浇,地道東北人脏毯。 一個(gè)月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓食店,卻偏偏與公主長得像渣淤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子叛买,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容