SparkSQL使用IDEA快速入門DataFrame與DataSet的完美教程
1.使用IDEA開發(fā)Spark SQL
1.1創(chuàng)建DataFrame/DataSet
1、指定列名添加Schema
2、通過StrucType指定Schema
3、編寫樣例類,利用反射機制推斷Schema
1.1.1指定列名添加Schema
//導包 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 上下文對象 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.導入隱式類 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
//導包 import org.apache.spark.sql.{Row, SparkSession} import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType} //編寫代碼 //1.實例SparkSession val spark = SparkSession.builder().master("local[*]").appName("sql").getOrCreate() //2.根據(jù)SparkSession獲取SparkContext 上下文對象 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.導入隱式類 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ù)進行拼接 返回一個DataFrame val dataDF = spark.createDataFrame(rowRDD,schema) //7.數(shù)據(jù)展示 dataDF.show()
1.1.3反射推斷Schema
//導包 import org.apache.spark.rdd.RDD import org.apache.spark.sql.SparkSession //定義單例對象 case class Person(Id:Int,name:String,age:Int) //編寫代碼 //1.實例sparkSession val spark = SparkSession.builder().master("local[*]").appName("sql").getOrCreate() //2.通過sparkSession獲取sparkContext 上下文對象 val sc = spark.sparkContext //3.通過sparkContext 讀取文件并按照空格切分 將每一個數(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.導入隱式類 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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot使用Redis緩存的實現(xiàn)方法
這篇文章主要介紹了SpringBoot使用Redis緩存的實現(xiàn)方法,需要的朋友可以參考下2018-02-02MyBatis使用嵌套查詢collection和association的實現(xiàn)
本文詳細介紹了使用MyBatis框架進行數(shù)據(jù)庫操作時,如何利用collection標簽實現(xiàn)一對多的嵌套查詢和使用association標簽實現(xiàn)一對一的嵌套查詢,感興趣的可以了解一下2024-09-09Java微服務(wù)Nacos Config配置中心超詳細講解
配置文件相對分散。在一個微服務(wù)架構(gòu)下,配置文件會隨著微服務(wù)的增多變的越來越多,而且分散 在各個微服務(wù)中,不好統(tǒng)一配置和管理。每一個環(huán)境所使用的配置理論上都是不同的,一旦需要修改,就需要我們?nèi)ジ鱾€微服務(wù)下手動維護2023-02-02Spring Data JPA 如何使用QueryDsl查詢并分頁
這篇文章主要介紹了Spring Data JPA 如何使用QueryDsl查詢并分頁,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11Java中的static關(guān)鍵字用法總結(jié)
這篇文章主要介紹了Java中的static關(guān)鍵字用法總結(jié),static是Java50個關(guān)鍵字之一,static關(guān)鍵字可以用來修飾代碼塊表示靜態(tài)代碼塊,修飾成員變量表示全局靜態(tài)成員變量,修飾方法表示靜態(tài)方法,需要的朋友可以參考下2023-11-11springboot+kafka中@KafkaListener動態(tài)指定多個topic問題
這篇文章主要介紹了springboot+kafka中@KafkaListener動態(tài)指定多個topic問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12教你如何用Eclipse創(chuàng)建一個Maven項目
這篇文章主要介紹了教你如何用Eclipse創(chuàng)建一個Maven項目,文中有非常詳細的代碼示例,對正在入門Java的小伙伴們是非常有幫助的喲,需要的朋友可以參考下2021-05-05SpringBoot中的yml文件中讀取自定義配置信息及遇到問題小結(jié)
這篇文章主要介紹了SpringBoot中的yml文件中讀取自定義配置信息,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06