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

1.2 Spark SQL能做什么

現(xiàn)在我們知道了Spark SQL是怎么來的,那么Spark SQL到底能做些什么呢?下面我們根據(jù)ETL(數(shù)據(jù)的抽取、轉(zhuǎn)換、加載)的三個(gè)過程來講解一下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ù)清洗,比如空值處理、拆分?jǐn)?shù)據(jù)、規(guī)范化數(shù)據(jù)格式、數(shù)據(jù)替換等操作。Spark SQL能高效地完成這類轉(zhuǎn)換操作。

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

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

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

主站蜘蛛池模板: 凤台县| 子长县| 通城县| 杨浦区| 开化县| 屏南县| 邵武市| 姜堰市| 玉田县| 右玉县| 体育| 叙永县| 三原县| 镇平县| 徐州市| 无极县| 盐亭县| 宝清县| 靖州| 广宁县| 呼伦贝尔市| 富锦市| 黔西县| 河曲县| 黄骅市| 安溪县| 湄潭县| 浮山县| 马鞍山市| 增城市| 晋宁县| 临海市| 内乡县| 德庆县| 宜城市| 湄潭县| 会泽县| 霍城县| 平谷区| 青川县| 永顺县|