官术网_书友最值得收藏!

1.2 Spark SQL能做什么

現(xiàn)在我們知道了Spark SQL是怎么來的,那么Spark SQL到底能做些什么呢?下面我們根據(jù)ETL(數(shù)據(jù)的抽取、轉(zhuǎn)換、加載)的三個過程來講解一下Spark SQL的作用。

(1)抽取(Extract):Spark SQL可以從多種文件系統(tǒng)(HDFS、S3.本地文件系統(tǒng)等)、關(guān)系型數(shù)據(jù)庫(MySQL、Oracle、PostgreSQL等)或NoSQL數(shù)據(jù)庫(Cassandra、HBase、Druid等)中獲取數(shù)據(jù),Spark SQL支持的文件類型可以是CSV、JSON、XML、Parquet、ORC、Avro等。得益于Spark SQL對多種數(shù)據(jù)源的支持,Spark SQL能從多種渠道抽取人們想要的數(shù)據(jù)到Spark中。

(2)轉(zhuǎn)換(Transform):我們常說的數(shù)據(jù)清洗,比如空值處理、拆分數(shù)據(jù)、規(guī)范化數(shù)據(jù)格式、數(shù)據(jù)替換等操作。Spark SQL能高效地完成這類轉(zhuǎn)換操作。

(3)加載(Load):在數(shù)據(jù)處理完成之后,Spark SQL還可以將數(shù)據(jù)存儲到各種數(shù)據(jù)源(前文提到的數(shù)據(jù)源)中。

如果你以為Spark SQL只能做上面這些事情,那你就錯了。Spark SQL還可以作為一個分布式SQL查詢引擎通過JDBC或ODBC或者命令行的方式對數(shù)據(jù)庫進行分布式查詢。Spark SQL中還有一個自帶的Thrift JDBC/ODBC服務(wù),可以用Spark根目錄下的sbin文件夾中的start-thriftserver.sh腳本啟動這個服務(wù)。Spark中還自帶了一個Beeline的命令行客戶端,讀者可以通過這個客戶端連接啟動的Thrift JDBC/ODBC,然后提交SQL。

如果你以為Spark SQL能做的只有這些,那你就錯了。Spark SQL還可以和Spark的其他模塊搭配使用,完成各種各樣復(fù)雜的工作。比如和Streaming搭配處理實時的數(shù)據(jù)流,和MLlib搭配完成一些機器學(xué)習(xí)的應(yīng)用。

主站蜘蛛池模板: 榆中县| 武清区| 绥芬河市| 中江县| 澄城县| 合阳县| 辉县市| 海安县| 城口县| 阿尔山市| 兰州市| 南和县| 曲阜市| 信宜市| 长顺县| 舒兰市| 房山区| 郧西县| 靖州| 津南区| 紫云| 龙井市| 临澧县| 卫辉市| 阿鲁科尔沁旗| 河源市| 荃湾区| 巴塘县| 剑阁县| 安岳县| 弋阳县| 耒阳市| 宝兴县| 延吉市| 衢州市| 大石桥市| 习水县| 五河县| 民权县| 神池县| 依兰县|