簡體   English   中英

緩存 PySpark 數據幀

[英]Caching a PySpark Dataframe

假設我們有一個大約 10M 行的 PySpark 數據幀df 也讓列是[col_a, col_b] 哪個會更快:

df_test = df.sample(0.1)
for i in range(10):
  df_sample = df_test.select(df.col_a).distinct().take(10)

或者

df_test = df.sample(0.1)
df_test = df_test.cache()
for i in range(10):
  df_sample = df_test.select(df.col_a).distinct().take(10) 

在這里緩存df_test有意義嗎?

它不會有太大的不同。 這只是一個循環,您可以在其中跳過緩存,如下所示

>>> for i in range(10):
...   df_sample = df.sample(0.1).select(df.id).distinct().take(10)

這里 spark 在內存中加載一次數據。

如果您想在其他操作中重復使用 df_sample ,則可以使用 cache()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM