日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

学习笔记Spark(八)—— Spark SQL应用(3)—— Spark DataSet基础操作

發(fā)布時間:2025/3/21 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习笔记Spark(八)—— Spark SQL应用(3)—— Spark DataSet基础操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

三、Spark DataSet基本操作

3.1、DataSet簡介

  • DataSet是分布式的數(shù)據(jù)集合,DataSet提供了強類型支持,也是在RDD的每行數(shù)據(jù)加了類型約束。
  • DateSet整合了RDD和DataFrame的優(yōu)點,支持結構化和非結構化數(shù)據(jù)。
  • DataFrame表示為DataSet[Row],即DataSet的子集。
  • DataSet是面向?qū)ο蟮木幊探涌?#xff0c;可以通過JVM的對象進行構建DataSet。

3.1.1、DataFrame的缺點

  • 編譯時不能類型轉(zhuǎn)化安全檢查,運行時才能確定是否有問題
  • 對于對象支持不友好,rdd內(nèi)部數(shù)據(jù)直接以java對象存儲,dataframe內(nèi)存存儲的是row對象而不能是自定義對象

  • 3.1.2、DateSet的優(yōu)點

  • DateSet整合了RDD和DataFrame的優(yōu)點,支持結構化和非結構化數(shù)據(jù)
  • 和RDD一樣,支持自定義對象存儲
  • 和DataFrame一樣,支持結構化數(shù)據(jù)的sql查詢
  • 采用堆外內(nèi)存存儲,gc友好
  • 類型轉(zhuǎn)化安全,代碼友好

  • 3.2、創(chuàng)建DataSet

    • 從集合創(chuàng)建DataSet
    • 從rdd創(chuàng)建DataSet
    • 從DataFrame創(chuàng)建DataSet

    3.2.1、從集合創(chuàng)建DataSet

    createDataset[T](data: List[T])


    3.2.2、從rdd創(chuàng)建DataSet

    createDataset[T](data: RDD[T])


    3.2.3、從DataFrame創(chuàng)建DataSet

    dataSet=dataFrame.as[強類型]



    任務1:讀取Hive表中的超市商品銷售數(shù)據(jù)

    • 創(chuàng)建Hive表
    • 導入用戶購買數(shù)據(jù)到Hive表
    • 讀取Hive表數(shù)據(jù)創(chuàng)建DataSet

    數(shù)據(jù) GoodOrder.csv:

    步驟:
    ① 因為是csv,所以我們先上傳到hdfs上

    ② 打開spark-shell,通過DataFrame方式保存到hive中

    hive中查看數(shù)據(jù):

    ③ 讀取Hive表數(shù)據(jù)創(chuàng)建DataSet


    3.3、DataSet API

    應用示例
    (這是一個DataSet)


    任務2:統(tǒng)計每件商品的銷量

    • 根據(jù)商品分組統(tǒng)計商品銷量
    • 將統(tǒng)計結果保存到Hive

      hive查看:

    總結

    以上是生活随笔為你收集整理的学习笔记Spark(八)—— Spark SQL应用(3)—— Spark DataSet基础操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。