欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

1.1創(chuàng)建DataFrame/DataSet

1、指定列名添加Schema

2、通過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.通過sparkSession獲取sparkContext 上下文對(duì)象
    val sc = spark.sparkContext
//3.通過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)文章

  • SpringBoot使用Redis緩存的實(shí)現(xiàn)方法

    SpringBoot使用Redis緩存的實(shí)現(xiàn)方法

    這篇文章主要介紹了SpringBoot使用Redis緩存的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2018-02-02
  • MyBatis使用嵌套查詢collection和association的實(shí)現(xiàn)

    MyBatis使用嵌套查詢collection和association的實(shí)現(xiàn)

    本文詳細(xì)介紹了使用MyBatis框架進(jìn)行數(shù)據(jù)庫操作時(shí),如何利用collection標(biāo)簽實(shí)現(xiàn)一對(duì)多的嵌套查詢和使用association標(biāo)簽實(shí)現(xiàn)一對(duì)一的嵌套查詢,感興趣的可以了解一下
    2024-09-09
  • Java微服務(wù)Nacos Config配置中心超詳細(xì)講解

    Java微服務(wù)Nacos Config配置中心超詳細(xì)講解

    配置文件相對(duì)分散。在一個(gè)微服務(wù)架構(gòu)下,配置文件會(huì)隨著微服務(wù)的增多變的越來越多,而且分散 在各個(gè)微服務(wù)中,不好統(tǒng)一配置和管理。每一個(gè)環(huán)境所使用的配置理論上都是不同的,一旦需要修改,就需要我們?nèi)ジ鱾€(gè)微服務(wù)下手動(dòng)維護(hù)
    2023-02-02
  • Java中的RestTemplate使用詳解

    Java中的RestTemplate使用詳解

    這篇文章主要介紹了Java中的RestTemplate使用詳解,Spring內(nèi)置了RestTemplate作為Http請(qǐng)求的工具類,簡(jiǎn)化了很多操作,雖然Spring5推出了WebClient,但是整體感覺還是RestTemplate用起來更簡(jiǎn)單方便一些,需要的朋友可以參考下
    2023-10-10
  • Spring Data JPA 如何使用QueryDsl查詢并分頁

    Spring Data JPA 如何使用QueryDsl查詢并分頁

    這篇文章主要介紹了Spring Data JPA 如何使用QueryDsl查詢并分頁,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java中的static關(guān)鍵字用法總結(jié)

    Java中的static關(guān)鍵字用法總結(jié)

    這篇文章主要介紹了Java中的static關(guān)鍵字用法總結(jié),static是Java50個(gè)關(guān)鍵字之一,static關(guān)鍵字可以用來修飾代碼塊表示靜態(tài)代碼塊,修飾成員變量表示全局靜態(tài)成員變量,修飾方法表示靜態(tài)方法,需要的朋友可以參考下
    2023-11-11
  • Java 認(rèn)識(shí)異常并掌握使用

    Java 認(rèn)識(shí)異常并掌握使用

    所謂異常是指程序在運(yùn)行時(shí)出現(xiàn)錯(cuò)誤時(shí)提示調(diào)用者的機(jī)制,異常的種類有很多,不同種類的異常有不同的含義,也有不同的處理方式,通讀本篇對(duì)大家的學(xué)習(xí)或工作具有一定的價(jià)值,需要的朋友可以參考下
    2021-09-09
  • springboot+kafka中@KafkaListener動(dòng)態(tài)指定多個(gè)topic問題

    springboot+kafka中@KafkaListener動(dòng)態(tài)指定多個(gè)topic問題

    這篇文章主要介紹了springboot+kafka中@KafkaListener動(dòng)態(tài)指定多個(gè)topic問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 教你如何用Eclipse創(chuàng)建一個(gè)Maven項(xiàng)目

    教你如何用Eclipse創(chuàng)建一個(gè)Maven項(xiàng)目

    這篇文章主要介紹了教你如何用Eclipse創(chuàng)建一個(gè)Maven項(xiàng)目,文中有非常詳細(xì)的代碼示例,對(duì)正在入門Java的小伙伴們是非常有幫助的喲,需要的朋友可以參考下
    2021-05-05
  • SpringBoot中的yml文件中讀取自定義配置信息及遇到問題小結(jié)

    SpringBoot中的yml文件中讀取自定義配置信息及遇到問題小結(jié)

    這篇文章主要介紹了SpringBoot中的yml文件中讀取自定義配置信息,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06

最新評(píng)論