1
0

2024/4/12に翔泳社よりApache Spark徹底入門を出版します!

書籍のサンプルノートブックをウォークスルーしていきます。Python/Chapter07/7-5 Caching Dataとなります。

翻訳ノートブックのリポジトリはこちら。

ノートブックはこちら

cache() の使用

いくつかのカラムを持つ大規模データセットを作成します。

from pyspark.sql.functions import col

df = spark.range(1 * 10000000).toDF("id").withColumn("square", col("id") * col("id"))
df.cache().count()
10000000

どこにデータが格納されるのかを確認するためにSpark UIのstorageタブをチェックします。
Screenshot 2024-03-27 at 17.02.51.png

Disk Memory Deserialized 1x Replicatedとなっています。

df.unpersist() # unpersistしない場合、下のdf2はdfと同じクエリープランであるためdf2はキャッシュされません

Screenshot 2024-03-27 at 17.04.54.png

persist(StorageLevel.Level) の使用

from pyspark import StorageLevel

df2 = spark.range(1 * 10000000).toDF("id").withColumn("square", col("id") * col("id"))
df2.persist(StorageLevel.DISK_ONLY).count()
df2.count()
10000000

データがどこに格納されているのかを確認するためにSpark UIのStorageタブをチェックします。

Screenshot 2024-03-27 at 17.07.48.png

Disk Deserialized 1x Replicatedとなっています。

SQLでのキャッシュ

df.createOrReplaceTempView("dfTable")
spark.sql("CACHE TABLE dfTable")

どこにデータが格納されるのかを確認するためにSpark UIのstorageタブをチェックします。
Screenshot 2024-03-27 at 17.11.58.png

In-memory table dfTableがキャッシュされています。

spark.sql("SELECT count(*) FROM dfTable").show()
+--------+
|count(1)|
+--------+
|10000000|
+--------+

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0