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

溫馨提示×

溫馨提示×

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

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

Spark 中關于Parquet的應用與性能初步測試

發布時間:2020-06-23 23:13:21 來源:網絡 閱讀:2142 作者:去買大白兔 欄目:大數據

Spark 中關于Parquet的應用


Parquet簡介

 

Parquet是面向分析型業務的列式存儲格式,由TwitterCloudera合作開發,20155月從Apache的孵化器里畢業成為Apache頂級項目

http://parquet.apache.org/ 

Spark關于Parquet的支持

這里我們使用的版本為spark2.0.1,是2016103日發布的最新版本。

Spark可以很好的使用和生成Parquet 文件。下面的截圖來自官方文檔。


Spark 中關于Parquet的應用與性能初步測試

上圖的例子中spark讀取了一個位于examples/src/main/resources/users.parquet文件夾下的Parquet文件,并對數據進行了篩選后保存在了namesAndFavColors.parquet文件夾中,注意一下,官方文檔路徑取名加了.parquet,可能會被誤解成是一個文件,其實是文件夾,這里自己試一下就可以證實。

Spark也支持將jdbc的數據轉換成Parquet文件,下面的例子我們將SQLserver中的測試表1轉換成Parquet文件。代碼如下

Spark 中關于Parquet的應用與性能初步測試

生成好了的文件如下圖所示,這里的實驗環境為Windows,spark local模式,可以看到,文件名格式為*.snappy.parquet,這里的snappy表示的是壓縮的方式,當然,這個壓縮方式也是有很多種選擇的,不過spark在這里選擇了snappy的壓縮方式壓縮成parquet文件作為默認策略。

Spark 中關于Parquet的應用與性能初步測試 

 

我們看下測試表1在SQLserver中的信息,如下圖所示:

Spark 中關于Parquet的應用與性能初步測試 

 

可以看到這是一張7000w級別的表,表大小為6.5G,壓縮過后的大小為768M,壓縮后的大小為原文件大小的11%,節約了89%的空間。整個壓縮時間耗時約11min,對于大數據平臺來說,存儲空間也是很重要的資源,而且對于網絡傳輸有很大提升,在分布式計算中,網絡傳輸有時會成為性能瓶頸。

我們再用另外一張測試表2做實驗

Spark 中關于Parquet的應用與性能初步測試

這是一張2.5億級別的表,表大小為9G,壓縮后的大小為3.99G,節約了56%的空間,耗時約17min這是因為列存儲格式文件大小不僅和行數有關,也和具體數據有關,不同的數據會有不同的壓縮率。

 

Spark Sql支持直接在sql語句中讀取Parquet文件,如下圖所示

Spark 中關于Parquet的應用與性能初步測試

注意,這個語法是spark2.0開始才支持的新特性,利用這個特性,我們可以跳過建表這個過程直接讀取文件的數據


性能相關

下面我們介紹一下性能。

我們使用三個場景來測試Parquet的性能,這里我們并沒有直接去取parquet文件,而是用createOrReplaceTempView方法將其創建為一個view。測試結果如下。

 

SELECT YEAR(LOGOUT_DT) YR , MONTH(LOGOUT_DT) MTH,Modename,sum(WinCount+LoseCount+DrawCount) GameCount,sum(GameTime) GameTime,sum(GameTime) / sum(WinCount+LoseCount+DrawCount) Avg_GameTime FROM 測試表1 WHERE LOGOUT_DT BETWEEN '2015-01-01' AND '2016-01-01' GROUP BY YEAR(LOGOUT_DT) ,MONTH(LOGOUT_DT) ,Modename limit 1000;

 

 

我們再看一下一個對比試驗:

Phoenix(poc環境,10臺阿里云,集群環境

110s

spark local(8G,4核,i3-4170,單機模式)

52s

spark 3node(8G,4核,i3-4170,集群環境)

12s

spark 5node (8G,4核,i3-4170,集群環境)

12s

hive 普通存儲5node (8G,4核,i3-4170,集群環境)

133s

hive 列存儲5node(parquet(8G,4核,i3-4170,集群環境)

43s

 

Parquet不僅可以提高spark的查詢速度,也可以提高hive的查詢速度

集群的計算速度大于單機的計算速度(機器配置相同)

增加計算節點不一定會提高計算速度


向AI問一下細節

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

AI

应用必备| 太白县| 乡城县| 兰考县| 崇州市| 开阳县| 通城县| 锡林郭勒盟| 辽源市| 泽州县| 白玉县| 万全县| 澄迈县| 永泰县| 贵定县| 顺平县| 溆浦县| 麻阳| 水富县| 长海县| 贞丰县| 鄂尔多斯市| 靖西县| 嘉峪关市| 屯留县| 卢湾区| 柘城县| 巨野县| 武宁县| 宁化县| 容城县| 延长县| 南丰县| 通州区| 九寨沟县| 宾阳县| 许昌市| 常山县| 吕梁市| 丹棱县| 兴安盟|