最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SparkSQL使用IDEA快速入門DataFrame與DataSet的完美教程

 更新時(shí)間:2021年08月10日 12:03:24   作者:大數(shù)據(jù)老哥  
本文給大家介紹使用idea開發(fā)Spark SQL 的詳細(xì)過(guò)程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

1.使用IDEA開發(fā)Spark SQL

1.1創(chuàng)建DataFrame/DataSet

1、指定列名添加Schema

2、通過(guò)StrucType指定Schema

3、編寫樣例類,利用反射機(jī)制推斷Schema

1.1.1指定列名添加Schema

//導(dǎo)包
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SparkSession
//代碼
// 1.創(chuàng)建SparkSession
    val spark = SparkSession.builder().master("local[*]").appName("sql").getOrCreate()
// 2.使用spark 獲取sparkContext 上下文對(duì)象
    val sc = spark.sparkContext
// 3.使用SparkContext 讀取文件并按照空格切分 返回RDD
    val rowRDD: RDD[(Int, String, Int)] = sc.textFile("./data/person.txt").map(_.split(" ")).map(x=>(x(0).toInt,x(1),x(2).toInt))
// 4.導(dǎo)入隱式類
    import spark.implicits._
//5.將RDD 轉(zhuǎn)換為DataFrame 指定元數(shù)據(jù)信息
    val dataFrame = rowRDD.toDF("id","name","age")
//6.數(shù)據(jù)展示
    dataFrame.show()

1.1.2StructType指定Schema

//導(dǎo)包
import org.apache.spark.sql.{Row, SparkSession}
import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType}
//編寫代碼
//1.實(shí)例SparkSession
    val spark = SparkSession.builder().master("local[*]").appName("sql").getOrCreate()
//2.根據(jù)SparkSession獲取SparkContext 上下文對(duì)象
    val sc = spark.sparkContext
// 3.使用SparkContext讀取文件并按照空開切分并返回元組
    val rowRDD = sc.textFile("./data/person.txt").map(_.split(" ")).map(x=>Row(x(0).toInt,x(1),x(2).toInt))
// 4.導(dǎo)入隱式類
    import spark.implicits._
//5.使用StructType 添加元數(shù)據(jù)信息
    val schema = StructType(List(
      StructField("id", IntegerType, true),
      StructField("name", StringType, true),
      StructField("age", IntegerType, true)
    ))
//6.將數(shù)據(jù)與元數(shù)據(jù)進(jìn)行拼接 返回一個(gè)DataFrame
    val dataDF = spark.createDataFrame(rowRDD,schema)
//7.數(shù)據(jù)展示
    dataDF.show()

1.1.3反射推斷Schema

//導(dǎo)包
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SparkSession
//定義單例對(duì)象
  case class Person(Id:Int,name:String,age:Int)
//編寫代碼
//1.實(shí)例sparkSession
    val spark = SparkSession.builder().master("local[*]").appName("sql").getOrCreate()
//2.通過(guò)sparkSession獲取sparkContext 上下文對(duì)象
    val sc = spark.sparkContext
//3.通過(guò)sparkContext 讀取文件并按照空格切分 將每一個(gè)數(shù)據(jù)保存到person中
    val rowRDD: RDD[Person] = sc.textFile("./data/person.txt").map(_.split(" ")).map(x=>Person(x(0).toInt,x(1),x(2).toInt))
// 4.導(dǎo)入隱式類
    import spark.implicits._
//5.將rowRDD轉(zhuǎn)換為dataFrame
    val dataFrame = rowRDD.toDF()
    //6.數(shù)據(jù)展示
    dataFrame.show()

到此這篇關(guān)于SparkSQL使用IDEA快速入門DataFrame與DataSet的文章就介紹到這了,更多相關(guān)SparkSQL快速入門內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux系統(tǒng)卸載重裝JDK的完整流程

    Linux系統(tǒng)卸載重裝JDK的完整流程

    Linux系統(tǒng)有時(shí)候會(huì)默認(rèn)使用OpenJDK版本,需要卸載后重新安裝自己需要的JDK版本,下面這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)卸載重裝JDK的完整流程,需要的朋友可以參考下
    2024-02-02
  • springboot+EHcache 實(shí)現(xiàn)文章瀏覽量的緩存和超時(shí)更新

    springboot+EHcache 實(shí)現(xiàn)文章瀏覽量的緩存和超時(shí)更新

    這篇文章主要介紹了springboot+EHcache 實(shí)現(xiàn)文章瀏覽量的緩存和超時(shí)更新,問(wèn)題描述和解決思路給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2017-04-04
  • 詳解Java分布式IP限流和防止惡意IP攻擊方案

    詳解Java分布式IP限流和防止惡意IP攻擊方案

    這篇文章主要介紹了詳解Java分布式IP限流和防止惡意IP攻擊方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • java使用bitmap實(shí)現(xiàn)可回收自增id的示例

    java使用bitmap實(shí)現(xiàn)可回收自增id的示例

    本文主要介紹了java使用bitmap實(shí)現(xiàn)可回收自增id的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • Java JDK動(dòng)態(tài)代理(AOP)用法及實(shí)現(xiàn)原理詳解

    Java JDK動(dòng)態(tài)代理(AOP)用法及實(shí)現(xiàn)原理詳解

    在本篇文章了小編給大家整理的是一篇關(guān)于Java JDK動(dòng)態(tài)代理(AOP)用法及實(shí)現(xiàn)原理詳解內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2020-10-10
  • java常見的序列化方式

    java常見的序列化方式

    這篇文章主要為大家詳細(xì)介紹了java中兩種常見的序列化方式,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 淺談java運(yùn)用注解實(shí)現(xiàn)對(duì)類中的方法檢測(cè)的工具

    淺談java運(yùn)用注解實(shí)現(xiàn)對(duì)類中的方法檢測(cè)的工具

    這篇文章主要介紹了淺談java運(yùn)用注解實(shí)現(xiàn)對(duì)類中的方法檢測(cè)的工具,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 詳解Java中的hashcode

    詳解Java中的hashcode

    這篇文章主要介紹了詳解Java中的hashcode,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Spring Security實(shí)現(xiàn)多次登錄失敗后賬戶鎖定功能

    Spring Security實(shí)現(xiàn)多次登錄失敗后賬戶鎖定功能

    當(dāng)用戶多次登錄失敗的時(shí)候,我們應(yīng)該將賬戶鎖定,等待一定的時(shí)間之后才能再次進(jìn)行登錄操作。今天小編給大家分享Spring Security實(shí)現(xiàn)多次登錄失敗后賬戶鎖定功能,感興趣的朋友一起看看吧
    2019-11-11
  • MyBatis中#{}和${}的區(qū)別詳解

    MyBatis中#{}和${}的區(qū)別詳解

    mybatis和ibatis總體來(lái)講都差不多的。下面小編給大家探討下mybatis中#{}和${}的區(qū)別,感興趣的朋友一起學(xué)習(xí)吧
    2016-08-08

最新評(píng)論

湖南省| 葵青区| 新乡市| 江都市| 蕉岭县| 河源市| 辉县市| 赣州市| 建始县| 凤冈县| 隆昌县| 方城县| 秭归县| 额尔古纳市| 资源县| 夏津县| 旬阳县| 江北区| 伊川县| 河北省| 朔州市| 武鸣县| 娄烦县| 治县。| 庆城县| 张家港市| 阿克| 白城市| 织金县| 屯留县| 甘肃省| 全州县| 米易县| 靖江市| 吴江市| 庆元县| 林西县| 海阳市| 渑池县| 望都县| 衡东县|