日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RDD缓存学习

發布時間:2025/4/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RDD缓存学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先實現rdd緩存

準備了500M的數據 10份,每份 100萬條,存在hdfs 中通過sc.textFile方法讀取

val rdd1 = sc.textFile("hdfs://mini1:9000/spark/input/visitlog").cache

在啟動spark集群模式時分配內存2g,第一次分配1g 只緩存了40% 當數據需要的內存大于實際的內存時spark會盡力的緩存

然后調用cache方法

rdd1.count

第二次調用rdd的count方法就顯示出差距了

?

默認緩存策略是memory_only ??

/** Persist this RDD with the default storage level (`MEMORY_ONLY`). */def persist(): this.type = persist(StorageLevel.MEMORY_ONLY)

其他的緩存策略

object StorageLevel { //不緩存val NONE = new StorageLevel(false, false, false, false)//只往磁盤中緩存val DISK_ONLY = new StorageLevel(true, false, false, false)//磁盤中緩存兩份val DISK_ONLY_2 = new StorageLevel(true, false, false, false, 2)//放在內存中val MEMORY_ONLY = new StorageLevel(false, true, false, true)//內存中保存兩份,多個機器報存val MEMORY_ONLY_2 = new StorageLevel(false, true, false, true, 2)//報存一份到內存,并且把數據序列化,序列化之后數據占用內存變小,//但是序列化時需要消耗時間,時間換空間val MEMORY_ONLY_SER = new StorageLevel(false, true, false, false)// val MEMORY_ONLY_SER_2 = new StorageLevel(false, true, false, false, 2)//內存和磁盤都保存val MEMORY_AND_DISK = new StorageLevel(true, true, false, true)val MEMORY_AND_DISK_2 = new StorageLevel(true, true, false, true, 2)val MEMORY_AND_DISK_SER = new StorageLevel(true, true, false, false)//內存和磁盤都保存 序列化兩份val MEMORY_AND_DISK_SER_2 = new StorageLevel(true, true, false, false, 2)val OFF_HEAP = new StorageLevel(false, false, true, false)

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的RDD缓存学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。