真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

十余年的阿合奇網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整阿合奇建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“阿合奇網(wǎng)站設(shè)計(jì)”,“阿合奇網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

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)閜eople是普通的RDD,而registerTempTable函數(shù)不屬于RDD類,只有通過SchemaRDD的實(shí)例才可以調(diào)用,所以這么調(diào)用會出現(xiàn)錯(cuò)誤,解決辦法有兩個(gè):
  (1)registerTempTable函數(shù)是SQLContext類中的,所以我們可以將people轉(zhuǎn)換成SchemaRDD,如下:

02*User:過往記憶03*Date:14-12-1604*Time:下午10:1605*bolg:http://www.iteblog.com06*本文地址:http://www.iteblog.com/archives/122407*過往記憶博客,專注于hadoop、hive、spark、shark、flume的技術(shù)博客,大量的干貨08*過往記憶博客微信公共帳號:iteblog_hadoop09*/10scala>valpeopleSchema=sqlContext.createSchemaRDD(people)11peopleSchema:org.apache.spark.sql.SchemaRDD=12SchemaRDD[29]atRDDatSchemaRDD.scala:10313==QueryPlan==14==PhysicalPlan==15ExistingRdd[name#4,age#5],MapPartitionsRDD[28]at16mapPartitionsatbasicOperators.scala:2171718scala>peopleSchema.registerTempTable("people")19warning:therewere1deprecationwarning(s);re-runwith-deprecationfordetails

  這么調(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*CreatesaSchemaRDDfromanRDDofcaseclasses.3*4*@groupuserf5*/6implicitdefcreateSchemaRDD[A<:Product:TypeTag](rdd:RDD[A])={7SparkPlan.currentContext.set(self)8newSchemaRDD(this,SparkLogicalPlan(ExistingRdd.fromProductRdd(rdd))(self))9}

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

1scala>importsqlContext.createSchemaRDD2importsqlContext.createSchemaRDD34scala>people.registerAsTable("people")5warning:therewere1deprecationwarning(s);re-runwith-deprecationfordetails

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

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


當(dāng)前標(biāo)題:怎么實(shí)現(xiàn)SparkSchemaRDD隱式轉(zhuǎn)換
網(wǎng)址分享:http://weahome.cn/article/cpecoj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部