91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Apache Spark SQL入門及實踐的實例分析

發布時間:2021-12-17 13:44:32 來源:億速云 閱讀:241 作者:柒染 欄目:大數據

Apache Spark SQL入門及實踐的實例分析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

Apache SparkSQL是一個重要的Spark模塊,我們可以使用Python、Java和Scala中的DataFrame和DataSet簡化結構化數據處理流程,該過程從企業收集數據并形成分布式數據集合。使用Spark SQL,我們可以從Spark程序內部通過標準數據庫連接器(JDBC/ODBC)連接到Spark SQL外部工具查詢數據。

下面介紹了Spark SQL體系結構組件,比如DataSets和DataFrames;在Apache Spark中使用Spark SQL以及其優劣等內容。

Apache Spark SQL教程

Spark SQL簡介

Apache SparkSQL是Spark中結構化數據處理模塊。使用Spark SQL提供的接口,我們可以獲得有關數據結構和執行計算等信息。有了這些信息,我們就可以在Apache Spark中實現優化,通過DataFrame和Dataset API等方式與Spark SQL交互。無論使用哪種API或語言表達計算,在計算結果時都使用相同的執行引擎。因此,用戶可以容易地在不同API間切換。

在Apache Spark SQL中,我們可以通過四種方式使用結構化和半結構化數據:

  • 為了簡化結構化數據使用,它提供了Python,Java和Scala中的DataFrame抽象,提供了很好的優化技術。

  • 可讀取和寫入多種格式數據,比如JSON、Hive Tables和Parquet。

  • 使用SQL,我們可以從Spark程序內外部工具中查詢數據,外部工具通過標準數據庫連接器(JDBC/ODBC)連接到Spark SQL。

  • 使用Spark SQL的最佳方法是在Spark應用程序中,這使我們能夠加載數據并使用SQL進行查詢。同時,我們還可以將它與Python、Java或Scala中的“常規”程序代碼結合使用。

SQL從其他編程語言運行的結果將是數據集或數據框架,與SQL接口的交互使用命令行或JDBC/ODBC進行。

Spark SQL DataFrames

RDD存在一些局限性,使用結構化數據沒有內置的優化引擎,開發人員必須優化每個RDD。此外,沒有規定處理結構化數據。Spark SQL中的DataFrame克服了RDD限制。Spark DataFrame是Spark 1.3版本,它是按命名列排序的分布式數據集。從概念來看,它等同于關系數據庫中的表或R/Python中的數據框架,我們可以使用以下方法創建DataFrame:

  • 結構化數據文件

  • Hive中的表格

  • 外部數據庫

  • 使用現有的RDD

Spark SQL數據集

Spark Dataset是Spark 1.6版本中添加的接口,它是一個分布式數據集合。我們可以用JVM對象創建數據集,之后使用功能轉換(映射,過濾器等)對其進行操作,使用Scla和Java訪問數據集API。Python不支持Dataset API,但由于Python的動態特性,可以使用Dataset API的許多好處,R也如此。

Spark Catalyst Optimizer

Spark SQL使用的優化器是Catalyst,它優化了用Spark SQL和DataFrame DSL編寫的所有查詢。優化器幫助我們以比RDD對應方式更快的速度運行查詢,這提高了系統性能。

Spark Catalyst是一個基于規則的系統構建庫,每條規則都側重于具體優化。例如,ConstantFolding的重點是從查詢中消除常量表達式。

 Apache Spark SQL的使用

  • 執行SQL查詢;

  • 我們可以使用SparkSQL從existingHive安裝中讀取數據;

  • 當我們在另一種編程語言中運行SQL時,我們將得到結果作為數據集/數據框架。

由Spark SQL定義的函數

  • 內置功能:提供內置函數處理列值,可以使用以下命令訪問內置函數:

Import org.apache.spark.sql.functions
  • 用戶定義函數(UDF):UDF允許根據Scala規則創建用戶定義函數。

  • 聚合函數:它們對一組行進行操作,并計算每組的返回值。

  • 窗口化聚合(Windows):對一組行進行操作,并為組中的每一行計算返回值。

Spark SQL的優點

在本節中,我們將討論Apache Spark SQL的各種優點:

1、集成

Apache Spark SQL將SQL查詢與Spark程序集成。在Spark SQL的幫助下,我們可以將結構化數據作為分布式數據集(RDD)查詢,可以使用Spark SQL緊密集成屬性與復雜的分析算法一起運行SQL查詢。

2、統一數據訪問

使用Spark SQL,我們可以加載和查詢不同來源數據。Schema-RDD允許單個接口高效處理結構化數據。例如,Apache Hive tables, parquet files, and JSON files.

3、高兼容性

在Apache Spark SQL中,我們可以在現有倉庫上運行未修改的Hive查詢,允許使用Hive前端和MetaStore完全兼容現有Hive數據,查詢和UDF。

4、標準連接

可通過JDBC或ODBC連接,包括具有行業標準JDBC和ODBC連接的服務器模式。

5、可擴展性

為了支持查詢容錯和大型作業,它利用了RDD模型,使用相同的引擎進行交互式查詢。

6、性能優化

Spark SQL中的查詢優化引擎在整個計劃中選擇最佳的執行計劃。

7、用于批處理Hive表

使用Spark SQL快速批處理Hive表。

Spark SQL的缺點

除了這些功能外,Spark SQL還有一些缺點:

  • 不支持Union類型;

  • 無法創建或讀取包含union字段的表;

  • 插入超大Varchar類型不提示錯誤,即使插入值超出大小限制,也不會發生錯誤。如果從Hive讀取,則相同的數據將截斷,但如果從Spark讀取則不會截斷。SparkSQL會將varchar視為字符串,這意味著沒有大小限制;

  • 不支持Transactional 表;

  • Spark SQL不支持Hive事務;

  • 不支持char類型:無法閱讀或創建包含此類字段的表格;

  • Avro表不支持時間戳

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

钟山县| 土默特左旗| 梅河口市| 奎屯市| 孙吴县| 靖安县| 林芝县| 阿图什市| 沙河市| 彩票| 榆林市| 湄潭县| 汕尾市| 渝中区| 措勤县| 永寿县| 泸溪县| 台东市| 武夷山市| 岫岩| 旌德县| 永清县| 博爱县| 丹棱县| 高青县| 古田县| 辉县市| 宜黄县| 青阳县| 五台县| 依安县| 平南县| 扶沟县| 方正县| 定西市| 株洲市| 陈巴尔虎旗| 广平县| 伊金霍洛旗| 改则县| 宝山区|