中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站建設設電工培訓課程

網(wǎng)站建設設,電工培訓課程,西安網(wǎng)站制作工商,文章生成器網(wǎng)頁版文章目錄SparkSQL 核心編程1、新的起點2、SQL 語法1) 讀取 json 文件創(chuàng)建 DataFrame2) 對 DataFrame 創(chuàng)建一個臨時表3) 通過SQL語句實現(xiàn)查詢?nèi)?、DSL 語法1) 創(chuàng)建一個DataFrame2) 查看DataFrame的Schema信息3) 只查看"username"列數(shù)據(jù)4) 查看"username"列…

文章目錄

  • SparkSQL 核心編程
    • 1、新的起點
    • 2、SQL 語法
      • 1) 讀取 json 文件創(chuàng)建 DataFrame
      • 2) 對 DataFrame 創(chuàng)建一個臨時表
      • 3) 通過SQL語句實現(xiàn)查詢?nèi)?/li>
    • 3、DSL 語法
      • 1) 創(chuàng)建一個DataFrame
      • 2) 查看DataFrame的Schema信息
      • 3) 只查看"username"列數(shù)據(jù)
      • 4) 查看"username"列以及"age"+1數(shù)據(jù)
      • 5) 查看"age"大于"20"的數(shù)據(jù)
      • 6) 按照"age"分組,查看數(shù)據(jù)條數(shù)
    • 4、RDD 轉換為 DataFrame
    • 5、DataSet
      • 1) 創(chuàng)建 DataSet
      • 2) DataFrame 轉換為 DataSet
      • 3)RDD 直接轉換為 DataSet

SparkSQL 核心編程

學習如何使用 Spark SQL 提供的 DataFrame 和 DataSet 模型進行編程,以及了解他們之間的關系和轉換,關于具體的SQL書寫不是我們的重點。

1、新的起點

Spark Core 中,如果想要執(zhí)行應用程序,需要首先構建上下文環(huán)境對象,SparkContext,Spark SQL 其實可以理解為對 Spark Core的一種封裝,不僅僅在模型上進行了封裝,上下文環(huán)境對象也進行了封裝。
在老的版本中,SparkSQL提供兩種 SQL 查詢起始點,一個叫 SQLContext,用于 Spark 自己提供的 SQL 查詢,一個叫 HiveContext,用于連接 Hive 查詢。
SparkSession 是 Spark 最新的 SQL 查詢起點,實質(zhì)是上 SQLContext 和 HiveContext 的組合,所以在 SQLContext 和 HiveContext 上可用的API在 SparkSession 上同樣是可以使用的。SparkSession 內(nèi)部封裝了 SparkContext,所以實際上是由sparkContext 完成的。當我們使用 spark-shell 的時候,spark 框架會自動創(chuàng)建一個名稱叫做spark的SparkSession對象,就像我們以前可以自動獲取到一個sc來表示SparkContext對象一樣。
這下面是在終端命令行簡單的演示,是怎么用spark 執(zhí)行sql語句執(zhí)行的。
讀取json文件創(chuàng)建DataFrame:
val df = spark.read.json("input/user.json")
在這里插入圖片描述
在這里插入圖片描述
注意
從內(nèi)存中獲取數(shù)據(jù),spark 可以知道數(shù)據(jù)具體是什么。如果是數(shù)字,默認作為 Int 處理,但是從文件中讀取的數(shù)字,不能確定是什么類型,所以用 bigint(大整形) 接收,可以和 Long 類型轉換,但是和 Int 不能進行轉換。

2、SQL 語法

SQL 語法風格是指我們查詢數(shù)據(jù)的時候使用 SQL 語句來查詢,這種風格的查詢必須要有臨時視圖或者全局視圖來輔助。

1) 讀取 json 文件創(chuàng)建 DataFrame

在這里插入圖片描述

2) 對 DataFrame 創(chuàng)建一個臨時表

要想用sql語句,那肯定首先就要有個表,所以將DataFrame轉換為一個臨時表,就可以用sql語句了。創(chuàng)建臨時表使用 createReplaceTempView("pepole"),創(chuàng)建臨時視圖使用 createTempView("pepole")
在這里插入圖片描述
注意:普通臨時表是Session范圍內(nèi)的,如果想應用范圍內(nèi)有效,可以使用全局臨時表。使用全局臨時表時需要全路徑訪問。
比如下面這里就是newSession 開啟了一個新的會話,之前那個臨時表就用不了了,找不到。
在這里插入圖片描述在這里插入圖片描述

3) 通過SQL語句實現(xiàn)查詢?nèi)?/h3>

spark 查詢語句:spark.sql("select * from user") 這個user就是上面創(chuàng)建的臨時視圖,必須要創(chuàng)建個這樣的對象,才能進行sql 語句查詢。
在這里插入圖片描述
這個就是查詢的結果
在這里插入圖片描述

3、DSL 語法

DataFrame 提供一個特定領域語言(domain-specific language,DSL)去管理結構化數(shù)據(jù)。可以在 Scala,Java,Python,和 R 中使用 DSL,使用 DSL 語法風格不必去創(chuàng)建臨時視圖了。

1) 創(chuàng)建一個DataFrame

val df = spark.read.json("input/user.json")
在這里插入圖片描述

2) 查看DataFrame的Schema信息

df.printSchema 用這個看到看信息,說明spark的那些方法都是可以用的。
在這里插入圖片描述
在這里插入圖片描述
這里可以看到,這種DSL 不需要創(chuàng)建什么表,這個是可以直接用 DataFrame對象直接進行select的查詢
在這里插入圖片描述

3) 只查看"username"列數(shù)據(jù)

df.select("username").show
在這里插入圖片描述

4) 查看"username"列以及"age"+1數(shù)據(jù)

df.select($"username",$"age" + 1)
df.select('username,'age + 1)
注意涉及到運算的時候,每列都必須使用$,或者采用引號表達式:單引號+字段名
在這里插入圖片描述
或者不要雙引號,在每個字段的前面加上一個單引號也是可以的。
在這里插入圖片描述

5) 查看"age"大于"20"的數(shù)據(jù)

就不是select了,使用filter進行篩選過濾。
df.filter($"age">20).show
注意:這里這個大于20,上面那個20+1那個是不算的。在這里插入圖片描述

6) 按照"age"分組,查看數(shù)據(jù)條數(shù)

使用groupBy,分組完還必要要用count統(tǒng)計
df.groupBy("age").count.show
在這里插入圖片描述

4、RDD 轉換為 DataFrame

在 IDEA 開發(fā)程序時,如果需要 RDD 與 DF 或者 DS 之間互相操作,那么需要引入import spark.implicits._
這里的 spark 不是 Scala 中的包名,而是創(chuàng)建的sparkSession 對象的變量名稱,所以必須先創(chuàng)建 SparkSession 對象再導入。這里的 spark 對象那個不能那個使用 var 聲明,因為Scala 只支持 val 修飾的對象的引入。
spark-shell 中無需導入,自動完成此操作。
首先創(chuàng)建一個rdd
val rdd = sc.makeRDD(List(1,2,3,4)) 然后可以看到下面有很多的方法,其中有一個toDF方法,就是 RDD 轉換為 DataFrame的。
在這里插入圖片描述
val df = rdd.toDF("id") 我們將數(shù)據(jù)轉換為DataFrame 那我們得讓他知道我們的數(shù)據(jù)是什么意思,所以給他一個列字段名,“id”。
在這里插入圖片描述
要是想從DataFrame轉換回RDD的話,那么直接 df.rdd 就轉換回去了。

5、DataSet

DataSet 是具有強類型的數(shù)據(jù)集合,需要提供對應的類型信息。

1) 創(chuàng)建 DataSet

使用樣例類序列創(chuàng)建DataSet
在這里插入圖片描述
上面創(chuàng)建了一個樣例類的列表的數(shù)據(jù) ,然后直接使用toDS 方法之間轉換為DataSet
在這里插入圖片描述
轉換好之后,數(shù)據(jù)就可以直接看了。
在這里插入圖片描述

2) DataFrame 轉換為 DataSet

首先從RDD轉換為DataFrame使用rdd.toDF,然后我們要創(chuàng)建一個樣例類,注意樣例類里面這個列字段名要和那個DataFrame里面的那個字段名是一樣的,比如這里這個是value,然后用df.as[fengz] 有了類型他就變成DataSet了。
在這里插入圖片描述
在這里插入圖片描述

3)RDD 直接轉換為 DataSet

直接先創(chuàng)建一個樣例類,把他的類型先確定好,然后創(chuàng)建一個RDD,RDD里面的數(shù)據(jù)直接使用這個樣例類創(chuàng)建,然后直接使用rdd.toDS直接就從RDD轉換為DataSet了。在這里插入圖片描述

http://www.risenshineclean.com/news/8026.html

相關文章:

  • 營銷型網(wǎng)站建設虧1關鍵詞推廣軟件排名
  • 做網(wǎng)站seo優(yōu)化百度一下網(wǎng)頁搜索
  • 做視頻網(wǎng)站用哪個軟件好松原頭條新聞今日新聞最新
  • 手機網(wǎng)站制作方法大型網(wǎng)站制作
  • 安徽安慶中考成績查詢醫(yī)療網(wǎng)站優(yōu)化公司
  • 承接博彩網(wǎng)站建設seo關鍵詞搜索優(yōu)化
  • 做購物網(wǎng)站適合的服務器快速開發(fā)平臺
  • wordpress播放本地mp3站內(nèi)seo是什么意思
  • 2017年做網(wǎng)站好難企業(yè)策劃
  • 怎么做網(wǎng)站維護國外網(wǎng)站排名前十
  • 移民網(wǎng)站制作一網(wǎng)信息一個簡單便捷的新聞網(wǎng)站
  • 自定義網(wǎng)站模塊seo優(yōu)化教學視頻
  • php網(wǎng)站開發(fā) pdfseo顧問賺錢嗎
  • 學校網(wǎng)站制作三只松鼠網(wǎng)絡營銷策劃書
  • 動易門戶網(wǎng)站價格新網(wǎng)站多久會被百度收錄
  • 如何進行網(wǎng)站推廣百度熱搜榜
  • 現(xiàn)在如何給網(wǎng)站做外鏈百度指數(shù)怎么下載
  • 新疆網(wǎng)站制作網(wǎng)站關鍵詞免費優(yōu)化
  • wordpress對應國家語言百度站長工具seo查詢
  • 泰安網(wǎng)絡推廣長沙seo招聘
  • 網(wǎng)站建設官網(wǎng)怎么收費網(wǎng)址查詢域名解析
  • 管理咨詢網(wǎng)站網(wǎng)絡做推廣廣告公司
  • 多用戶商城系統(tǒng)網(wǎng)站建設上海seo顧問
  • 無錫哪家做網(wǎng)站好seo搜索引擎優(yōu)化課后答案
  • 長沙從寒網(wǎng)絡科技有限公司網(wǎng)站推廣與優(yōu)化平臺
  • 企業(yè)網(wǎng)站中( )是第一位的?;葜莅俣萻eo哪家好
  • 如何快速找到做網(wǎng)站的客戶站長素材網(wǎng)
  • 用wordpress做外貿(mào)網(wǎng)站b站推廣網(wǎng)站2024年
  • 企業(yè)對電子商務網(wǎng)站的建設網(wǎng)頁設計制作網(wǎng)站代碼
  • 做動圖的網(wǎng)站在哪里推廣自己的產(chǎn)品