久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么實(shí)現(xiàn)Spark SchemaRDD隱式轉(zhuǎn)換

156次閱讀
沒有評論

共計(jì) 1768 個字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。

今天就跟大家聊聊有關(guān)怎么實(shí)現(xiàn) Spark SchemaRDD 隱式轉(zhuǎn)換,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

SchemaRDD 在 Spark SQL 中已經(jīng)被我們使用到,這篇文章簡單地介紹一下如果將標(biāo)準(zhǔn)的 RDD(org.apache.spark.rdd.RDD) 轉(zhuǎn)換成 SchemaRDD,并進(jìn)行 SQL 相關(guān)的操作。

01 /** 這是因?yàn)?people 是普通的 RDD,而 registerTempTable 函數(shù)不屬于 RDD 類,只有通過 SchemaRDD 的實(shí)例才可以調(diào)用,所以這么調(diào)用會出現(xiàn)錯誤,解決辦法有兩個:
(1)registerTempTable 函數(shù)是 SQLContext 類中的,所以我們可以將 people 轉(zhuǎn)換成 SchemaRDD,如下:

02  * User:  過往記憶
03  * Date: 14-12-16
04  * Time:  下午 10:16
05  * bolg: http://www.iteblog.com
06  *  本文地址:http://www.iteblog.com/archives/1224
07  *  過往記憶博客,專注于 hadoop、hive、spark、shark、flume 的技術(shù)博客,大量的干貨
08  *  過往記憶博客微信公共帳號:iteblog_hadoop
09  */
10 scala  val peopleSchema =sqlContext.createSchemaRDD(people)
11 peopleSchema:org.apache.spark.sql.SchemaRDD =
12 SchemaRDD[29] at RDD at SchemaRDD.scala:103
13 ==Query Plan ==
14 ==Physical Plan ==
15 ExistingRdd [name#4,age#5], MapPartitionsRDD[28] at
16  mapPartitions at basicOperators.scala:217
17  
18 scala  peopleSchema.registerTempTable(people)
19 warning:there were 1deprecation warning(s); re-run with-deprecation fordetails

這么調(diào)用就可以將 people 轉(zhuǎn)成 SchemaRDD。
(2)、上面的方法是通過顯示地調(diào)用 sqlContext.createSchemaRDD 將普通的 RDD 轉(zhuǎn)成 SchemaRDD。其實(shí)我們還可以通過 Scala 的隱式語法來進(jìn)行轉(zhuǎn)換。我們先來看看 createSchemaRDD 函數(shù)的定義

1 /**
2 * Creates a SchemaRDD from an RDD of case classes.
4 * @group userf
6 implicitdefcreateSchemaRDD[A  :Product:TypeTag](rdd:RDD[A]) ={7  SparkPlan.currentContext.set(self)
8  newSchemaRDD(this, SparkLogicalPlan(ExistingRdd.fromProductRdd(rdd))(self))
9 }

在定義 createSchemaRDD 的時候用到了 implicit 關(guān)鍵字,所以我們在使用的時候可以通過下面語句使用

1 scala  import sqlContext.createSchemaRDD
2 import sqlContext.createSchemaRDD
3  
4 scala  people.registerAsTable(people)
5 warning:there were 1deprecation warning(s); re-run with-deprecation fordetails

這樣就隱身地將 people 轉(zhuǎn)換成 SchemaRDD 了。這是因?yàn)?Spark 可以隱式地將包含 case class 的 RDD 轉(zhuǎn)換成 SchemaRDD。

看完上述內(nèi)容,你們對怎么實(shí)現(xiàn) Spark SchemaRDD 隱式轉(zhuǎn)換有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝大家的支持。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-16發(fā)表,共計(jì)1768字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 永川市| 介休市| 鹤庆县| 古田县| 阿拉尔市| 鲜城| 文山县| 镇平县| 长子县| 墨竹工卡县| 师宗县| 佳木斯市| 莒南县| 敦煌市| 锦屏县| 略阳县| 海原县| 乌什县| 东乌| 大田县| 吉木乃县| 台前县| 重庆市| 弥渡县| 遂川县| 枣庄市| 五莲县| 岳阳市| 五指山市| 浮梁县| 岱山县| 永安市| 彩票| 治多县| 西昌市| 芒康县| 许昌县| 探索| 岗巴县| 马鞍山市| 固镇县|