成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個Spark緩存的使用示例

大數據 Spark
之前一直不是非常理解Spark的緩存應該如何使用. 今天在使用的時候, 為了提高性能, 嘗試使用了一下Cache, 并收到了明顯的效果。關于Cache的一些理論介紹, 網上已經很多了. 但是貌似也沒有一個簡單的例子說明。

之前一直不是非常理解Spark的緩存應該如何使用. 今天在使用的時候, 為了提高性能, 嘗試使用了一下Cache, 并收到了明顯的效果。

關于Cache的一些理論介紹, 網上已經很多了. 但是貌似也沒有一個簡單的例子說明。

注:因為使用的是內部數據文件, 在這邊就不公布出來了. 大家看看測試代碼跟測試結果即可。

這次測試是在JupyterNotebook這種交互式的環境下測試的. 如果是直接的submit一個job, 可能結果不太一樣。

[[219983]]

測試步驟

初始化Spark

 

  1. from pyspark.sql import SparkSession  
  2. spark = SparkSession\  
  3. .builder\  
  4. .appName("Cache Demo")\  
  5. .master("spark://10.206.132.113:7077") \  
  6. .config('spark.driver.memory''5g') \  
  7. .config('spark.executor.memory''5g') \  
  8. .config("spark.cores.max", 20) \  
  9. .getOrCreate() 

分別讀兩個文件做測試, 并且其中一個使用Cache

 

  1. ds1 = spark.read.json(os.path.join(data_path, "data.2018-01-04"))  
  2. ds2 = spark.read.json(os.path.join(data_path, "data.2018-01-05"))  
  3. ds1.cache() # 對于***個dataframe進行cache. 

注: 這兩個數據文件分別是1月4日跟1月5日產生的. 大小非常接近, 都是3.1G.

為了防止Spark自己做了什么Cache影響實驗, 在這里讀取兩個不同的數據文件.

計算時間:

 

  1. import time  
  2. def calc_timing(ds, app_name) :  
  3. t1 = time.time()  
  4. related = ds.filter("app_name = '%s'" % app_name)  
  5. _1stRow = related.first()  
  6. t2 = time.time()  
  7. print "cost time:", t2 - t1 

測試結果:

 

  1. calc_timing(ds1, "DrUnzip") # cost time: 13.3130679131  
  2. calc_timing(ds2, "DrUnzip") # cost time: 18.0472488403  
  3. calc_timing(ds1, "DrUnzip") # cost time: 0.868658065796  
  4. calc_timing(ds2, "DrUnzip") # cost time: 15.8150720596 

可以看到:

  • 對于DS1, 雖然調用了Cache ,但是因為沒有真正的使用到, 所以***次進行filter操作還是很慢的
  • 第二次使用DS1的時候, 因為有了緩存, 速度快了很多
  • 相對的, DS2兩次執行時間差別不大
  • 如果進到Spark UI 查看具體每個Job的執行時間, 會發現, 只讀取數據文件消耗的時間也就在15~20s.

因此可以猜想, Spark的DataFrame讀取數據之后, 即使進行兩個相同的操作, 消耗的時間也不能減少, 因為Spark 默認不會把DS放到內存之中.

責任編輯:未麗燕 來源: 網絡大數據
相關推薦

2011-08-15 11:24:46

SQL Server事務

2019-11-07 14:00:36

MySQL數據庫SQL

2017-08-17 16:37:59

MySQL數據遷移

2021-02-22 17:17:38

Proxy緩存代碼

2022-08-18 20:02:04

JSLRU緩存

2012-02-01 14:12:55

iOS本地緩存機制

2024-09-09 17:06:32

2018-01-02 10:36:29

Linux命令Cheat

2018-03-23 10:00:34

PythonTensorFlow神經網絡

2022-02-22 11:12:38

2013-09-11 16:02:00

Spark分布式計算系統

2024-04-09 09:56:52

多層緩存架構Instagram

2015-01-20 13:46:31

Java EEDockerDocker部署

2018-05-28 08:54:45

SparkRDD Cache緩存

2024-03-22 08:51:36

分庫分表項目

2012-04-19 17:42:46

Titanium布局

2025-03-03 07:00:00

2016-09-26 17:26:20

2020-08-27 11:39:05

JavaRESTful Web編程語言

2019-08-01 08:36:51

緩存系統并發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人av一区二区亚洲精 | 国产中文字幕在线观看 | 日韩精品一区二区三区在线播放 | 久久久久久国产精品三区 | 综合色婷婷 | 午夜天堂精品久久久久 | 久久精品国产一区二区 | 色黄视频在线 | 国产日韩一区二区三免费高清 | 国产综合在线视频 | 中文字幕在线电影观看 | 久久噜噜噜精品国产亚洲综合 | 精品国产一区二区在线 | 欧美一级黄色片免费观看 | 国产高清一区二区 | 成人精品鲁一区一区二区 | 精品久久久久久久久久久久 | 人人鲁人人莫人人爱精品 | 亚洲视频在线播放 | 性高湖久久久久久久久aaaaa | 99久久精品国产一区二区三区 | 久久国内精品 | 黄色av观看 | 日本午夜免费福利视频 | 18性欧美 | 中文字幕国产 | 国产婷婷色一区二区三区 | 久久久久久国产精品 | 久久这里只有精品首页 | 国产91亚洲精品一区二区三区 | 国产福利在线 | av在线播放网址 | 伊人久麻豆社区 | 国产精品国产自产拍高清 | 国产精品视频在线免费观看 | 中文字幕久久精品 | 亚洲欧美激情精品一区二区 | 国产情品| 亚洲精品视频一区二区三区 | 国产成在线观看免费视频 | 色香蕉在线|