亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

洞口县| 河源市| 资讯| 巴东县| 乐业县| 花垣县| 昂仁县| 全椒县| 治多县| 象山县| 会东县| 图片| 沂南县| 金塔县| 浮山县| 钟山县| 梓潼县| 云林县| 和顺县| 莆田市| 文成县| 吴江市| 盐城市| 永济市| 凤城市| 彰化市| 泽库县| 西昌市| 河池市| 兴和县| 灵台县| 怀化市| 铁岭市| 彝良县| 闽清县| 宜兰县| 广丰县| 皋兰县| 成都市| 铁岭县| 日照市|