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

溫馨提示×

溫馨提示×

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

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

spark2.0新特性的示例分析

發布時間:2021-12-16 21:52:10 來源:億速云 閱讀:118 作者:柒染 欄目:云計算

本篇文章為大家展示了spark2.0新特性的示例分析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

使用:

離線計算:數據源大多來自hdfs(hive),所以sql使用的非常多,幾乎每個離線計算作業都會用到hivecontext或sqlcontext

實時計算:streaming模塊

圖計算在企業里用的很少,需求少

數據挖掘包mllib的使用比圖計算略多,但里面的算法不是很好用,目前需求少

新特性:

1,用sparksession實現hivecontext和sqlcontext統一

2,whole-stage code generation,大幅提高計算性能,因為把物理計劃變成硬編碼,每秒處理的sql中的數據量增加十倍,即對物理執行的多次調用轉化為代碼for循環,蕾絲hardcode方式,減少執行的函數調用次數,當數據記錄多時,這個調用次數時很大的。

3,合并dataframe和datasets,1.6的dataset包含了dataframe的功能,這樣兩者存在很大冗余,所以2.0將兩者統一,保留dataset api,把dataframe表示為dataset[Row],即dataset的子集。dataframe是sql查詢結果rdd的抽象類,相當于java里的resultset。

4,結構化流計算,sparkstreaming是把流計算看成一個一個的離線計算來完成流計算,提供一套dstream的流api,相比其他的流計算,sparkstreaming的優點是容錯行和吞吐量上有優勢,在2.0以前的版本,用戶在使用時,如果有流計算,又有離線計算,就需要兩套api去編寫程序,一套是rddapi,一套是dstream api,而且dstream api在易用性上遠不如sql或dataframe。為了真正將流計算和離線計算在編程api上統一,同時也讓streaming作業能夠享受dataframe/dataset上所帶來的優勢:性能提升和API易用,于是提出了structed streaming,最后我們只需要基于dataframe/dataset可以開發離線計算和流計算的程序,很容易使得spark在api跟業界所說的dataflow來統一離線計算和流計算效果一樣。比如在做batch聚合時我們可以寫成下面代碼:

logs = ctx.read.format("json").open("s3://logs")

logs.groupBy(logs.user_id).agg(sum(logs.time)).write.format("jdbc").save("jdbc:mysql//...")

那么對于流計算時,我們僅僅是調用了dataframe/dataset的不同函數代碼,如下:

logs = ctx.read.format("json").stream("s3://logs")

logs.groupBy(logs.user_id).agg(sum(logs.time)).write.format("jdbc").stream("jdbc:mysql//...")

5,sql優化,增加了以前很多不支持的sql語句

6,采用vectorized Parquet decoder讀取parquet上數據,以前是一行一行的讀取,然后處理,現在改為一次讀取4096行記錄,不需要沒處理一行紀錄去調用一次parquet獲取記錄的方法,而是改為一批去調用一次(spark-12854) 。加上parquet本身是列存儲,這個優化使得parquet讀取速度提高三倍

采用radix sort提高sort的性能(spark-14724)。在某些情況下排序性能可以提高10~20倍

使用vectorizedhashmap來代替java的hashmap加速groupby的執行

將hive中的window函數用native spark window實現,因為native spark window在內存管理上有優勢

避免復雜語句中的邏輯相同部分在執行時重復計算

壓縮算法默認使用lz4

mllib里的計算用dataframe-based api代替以前的rdd計算邏輯

提供更多的r語言算法

使用scala-2.11編譯運行

在和舊版本的兼容方面,將hive語句解析以及語法移動到core里,在沒有hive原數據庫和hive依賴包時,我們可以像以前版本使用標準sql一樣去使用hivesql語句。

上述內容就是spark2.0新特性的示例分析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

蓬安县| 子洲县| 思南县| 凯里市| 扎兰屯市| 定南县| 仁怀市| 林州市| 宜昌市| 柳河县| 桃园县| 镇坪县| 上林县| 同江市| 新源县| 百色市| 顺义区| 长乐市| 湟中县| 兴和县| 兴宁市| 黄大仙区| 长海县| 宜州市| 保康县| 汉中市| 会理县| 江安县| 兴业县| 德庆县| 肇庆市| 诸城市| 永德县| 武鸣县| 本溪市| 贵州省| 金塔县| 竹溪县| 陵川县| 临湘市| 承德县|