文件內容課堂總結

Spark SQL是Spark用于結構化數據處理的模塊,前身是Shark。Shark基于Hive開發,雖提升了SQL-on-Hadoop效率,但對Hive依賴過多。2014年6月1日Shark項目停止開發,團隊將資源投入Spark SQL項目。Spark SQL具有諸多優點,如擺脫對Hive依賴、支持多種數據源、有多種性能優化技術、組件可擴展等
Spark SQL是對Spark Core的封裝,老版本中有SQLContext和HiveContext兩種SQL查詢起始點,SparkSession是最新SQL查詢起始點,是SQLContext和HiveContext的組合
Spark SQL特點包括:
易整合:無縫整合SQL查詢和Spark編程
統一的數據訪問:使用相同方式連接不同數據源
兼容 Hive:在已有倉庫上可直接運行SQL或HQL
標準數據連接:通過JDBC或ODBC連接
DataFrame是一種以RDD為基礎的分布式數據集,帶有schema元信息。與RDD相比,Spark SQL能更好優化其執行計劃,提升運行效率。DataFrame類似于傳統數據庫中的二維表格,支持嵌套數據類型,API友好,門檻較低
DataSet是Spark1.6中添加的新抽象,是DataFrame的擴展。它是分布式數據集合,提供RDD的優勢以及Spark SQL優化執行引擎的優點,是強類型的,可以用樣例類定義結構信息,用戶友好的API風格兼具類型安全檢查和查詢優化特性,還可以使用功能性轉換操作
SparkSession是Spark SQL的入口,創建DataFrame有三種方式:
通過Spark的數據源進行創建,如讀取json文件?
從一個存在的RDD進行轉換
從Hive Table進行查詢返回?
讀取JSON文件創建DataFrame后,可對DataFrame創建臨時表或全局表,然后通過SQL語句實現查詢全表等操作
DataFrame的DSL語法包括: ??
創建DataFrame,如通過?spark.read.json?方法讀取json文件
查看DataFrame的Schema信息,使用?printSchema?方法?
查看指定列數據,如?select?方法?
涉及運算時,列需使用?$?或引號表達式
過濾數據使用?filter?方法,分組統計使用?groupBy?和?count?方法
RDD與DataFrame轉換需注意:
RDD轉換為DataFrame需引入?spark.implicits._?,可通過樣例類或直接操作實現
DataFrame轉換為RDD可直接獲取內部的RDD
創建DataSet有兩種方式:?
使用樣例類序列創建,如?Seq(Person("zhangsan",2)).toDS()?
使用基本類型的序列創建,如?Seq(1,2,3,4,5).toDS?
RDD與DataSet轉換需要注意: ?
SparkSQL能自動將含有case類的RDD轉換成DataSet?
DataSet轉換為RDD可直接獲取內部RDD
DataFrame和DataSet轉換方法:
DataFrame可轉換為DataSet,如?df.asUser?
DataSet可轉換為DataFrame,如?ds.toDF?
RDD、DataFrame、DataSet三者的關系:
共性:都是Spark平臺下的分布式彈性數據集,有惰性機制、共同函數、自動緩存運算、分區概念,DataFrame和DataSet可使用模式匹配獲取字段值和類型
區別:RDD:一般與spark mllib同時使用,不支持sparksql操作
DataFrame:每一行類型固定為Row,不支持spark mllib操作,支持sparksql操作和一些保存方式
DataSet:和DataFrame擁有相同成員函數,區別在于行數據類型,DataFrame是DataSet的特例

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/75760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/75760.shtml
英文地址,請注明出處:http://en.pswp.cn/web/75760.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Zotero PDF Translate 翻譯插件使用OpenAI API配置教程

PDF Translate:提升 Zotero 內置 PDF 閱讀器的翻譯功能 “PDF Translate” 是一款為 Zotero 設計的插件,旨在方便用戶在 Zotero 內置的 PDF 閱讀器中進行劃詞或段落翻譯,輔助閱讀外文文獻。 一、 安裝插件 下載插件: 訪問 PDF T…

火山引擎旗下的產品

用戶問的是火山引擎旗下的產品,我需要詳細列出各個類別下的產品。首先,我得確認火山引擎有哪些主要業務領域,比如云計算、大數據、人工智能這些。然后,每個領域下具體有哪些產品呢?比如云計算方面可能有云服務器、容器…

C/C++程序中實現Python綁定多種技術路線

在C/C程序中實現Python綁定有多種技術路線,選擇合適的方法取決于項目需求、性能要求和開發效率。以下是常見的幾種方案,按易用性排序: 1. PyBind11(推薦首選) 特點:現代C庫,語法簡潔&#xff0…

【位運算】消失的兩個數字

文章目錄 面試題 17.19. 消失的兩個數字解題思路 面試題 17.19. 消失的兩個數字 面試題 17.19. 消失的兩個數字 ? 給定一個數組,包含從 1 到 N 所有的整數,但其中缺了兩個數字。你能在 O(N) 時間內只用 O(1) 的空間找到它們嗎? ? 以任意…

自然語言處理Hugging Face Transformers

Hugging Face Transformers 是一個基于 PyTorch 和 TensorFlow 的開源庫,專注于 最先進的自然語言處理(NLP)模型,如 BERT、GPT、RoBERTa、T5 等。它提供了 預訓練模型、微調工具和推理 API,廣泛應用于文本分類、機器翻…

vue開發基礎流程 (后20)

創建項目命令; 或者 vue create my - vue - router - project這個是創建帶路由的項目 22.組件組成 比如說一個頁面吧,他三個組件,template就是用來放所有的標簽,script用來放業務邏輯,style用來放樣式,c…

高性能內存kv數據庫Redis

引言 在當今數據驅動的時代,高效的數據存儲和檢索對于各類應用程序至關重要。Redis(Remote Dictionary Server)作為一款開源的內存鍵值數據庫,憑借其出色的性能、豐富的數據結構和靈活的特性,在眾多場景中得到了廣泛應…

自動化測試概念篇

文章目錄 目錄1. 自動化1.1 自動化概念1.1.1 回歸測試 1.2 自動化分類1.3 自動化測試金字塔 2. web自動化測試2.1 驅動2.1.1 安裝驅動管理2.1.2 selenium庫 3. Selenium3.1 一個簡單的web自動化示例3.2 selenium驅動瀏覽器的工作原理 目錄 自動化web自動化測試Selenium 1. 自…

《AI大模型應知應會100篇》第17篇:大模型的偏見與公平性問題

第17篇:大模型的偏見與公平性問題 摘要 在人工智能迅速發展的今天,大型語言模型(LLM)已經深入到我們的日常生活和工作中。然而,這些模型并非完美無缺,它們可能攜帶并放大數據中的偏見,導致不公…

【踩坑】GitHub Actions 運行的 Linux 環境中,文件名是大小寫敏感的

在使用 VuePress 搭建個人博客并部署到 GitHub Pages 的過程中,我遇到了一個頗為棘手的問題:本地打包一切正常,但在 GitHub Actions 自動執行打包流程時,卻提示找不到 README.md 文件,導致整個流程失敗。經過一番深入排…

C# 13新特性 - .NET 9

轉載: C# 13 中的新增功能 | Microsoft Learn C# 13 包括以下新增功能。 可以使用最新的 Visual Studio 2022 版本或 .NET 9 SDK 嘗試這些功能:Introduced in Visual Studio 2022 Version 17.12 and newer when using C# 13 C# 13 中的新增功能 | Micr…

numpy.ma.masked_where:屏蔽滿足條件的數組

1.函數功能 屏蔽滿足條件的數組內容,返回值為掩碼數組 2.語法結構 np.ma.masked_where(condition, a, copyTrue)3. 參數 參數含義condition屏蔽條件a要操作的數組copy布爾值,取值為True時,結果復制數組(原始數據不變),否則返回…

【Redis】數據結構和內部編碼

先來復習一下之前學過的幾個基本的全局命令: keys:用來查看匹配規則的keyexists:用來判定執行key是否存在del:刪除指定的keyexpire:給key設置過期時間ttl:查詢key的過期時間type:查詢key對應的…

OBOO鷗柏如何以智能教育室內外觸摸屏一體機AI變革硬件

在AI技術蓬勃發展的當下,OBOO鷗柏室外觸摸屏一體機通過融入AI科技,為教育領域帶來了翻天覆地的變化。這款一體機不僅為高校和大學校園提供了革命性的數字化教學解決方案,更引領了引體向上成績提升一體機帶訓室外終端屏幕設備的新潮流。其創新…

從零搭建高并發體育直播網站:架構設計、核心技術與性能優化實戰

本文從技術視角拆解體育直播網站開發全流程,涵蓋高并發架構設計、低延遲視頻流傳輸、實時彈幕系統實現等核心模塊,并附可復用的代碼片段與優化方案。適合中高級開發者進階實戰參考。 一、需求分析與技術選型 1. 典型業務場景 核心需求:支持1…

【Python內置函數的深度解析與應用】id

目錄 前言:技術背景與價值當前技術痛點解決方案概述目標讀者說明 一、技術原理剖析核心概念圖解關鍵技術模塊技術選型對比 二、實戰演示環境配置要求核心代碼實現1. 基礎身份驗證2. 不可變對象優化3. 對象生命周期追蹤 運行結果驗證 三、性能對比測試方法論量化數據…

3.vtkProp 和vtkProp3D

文章目錄 vtkProp 和vtkProp3D使用vtkProp3D使用vtkPro vtkProp 和vtkProp3D vtkProp 和 vtkProp3D 都是VTK(Visualization Toolkit)庫中的類,它們用于在渲染場景中表示可視化元素。理解這兩個類的區別和用途對于有效地使用VTK進行三維數據可…

【ZYNQ Linux移植】2-獲取設備樹

0 寫在前面 這是一個系列博客,詳細介紹如何在 ZYNQ 與 ZYNQ MP 平臺上如何移植 Linux 系統。目前網絡上的大部分教程都是全程基于 Petalinux 的開發,雖然這樣簡化了開發流程,但對于初學者深入理解掌握 Linux 是不利的,所以&#x…

基礎算法篇(5)(藍橋杯常考點)—動態規劃(C/C++)

文章目錄 動態規劃前言線性dp路徑類dp經典線性dp背包問題分類01背包問題完全背包問題多重背包分組背包問題混合背包問題多維費用的背包問題區間dp 動態規劃 前言 在競賽中,如果遇到動態規劃的題目,只要不是經典題型,那么大概率就是以壓軸題的…

obsidian寫文章的圖床設置方法

目標 要達成的需求: 復制到obsidian的圖片,自動上傳到Picgo配置的圖床。可以自定義大小。可以一鍵下載當前文章的圖片到本地。 obsidian配置圖床 安裝并配置插件 image auto upload plugin,配置信息如下圖。 滾輪alt自定義大小 安裝并…