簡體   English   中英

在這個例子中究竟發生了什么

[英]What exactly happens in this example

我在 tpc-h 數據集的一個切片上用dask編寫 TPC-H 查詢 6:

start = time.time()
lineitem = dd.read_csv("s3://tpc-h-csv/lineitem/lineitem.tbl.1",sep="|", header = 0)
df = lineitem.rename(columns=dict(zip(lineitem.columns, lineitem_scheme)))
filtered_df = df.loc[(df.l_shipdate > "1994-01-01") & (df.l_discount >= 0.05) & (df.l_discount <= 0.07) & (df.l_quantity < 24)]
filtered_df['product'] = filtered_df.l_extendedprice * filtered_df.l_discount
print(filtered_df.product.sum().compute())
print(time.time() - start)

我有幾個問題:

  1. 這是在Dask中編寫所述查詢的最快方法嗎?

  2. 我從S3下載的數據是 48GB。 我節點上的 memory 是 16 GB。 Dask是否進行批量計算? 它是否持久保存到磁盤然后從磁盤讀取? 怎么了?

對於您的第一個問題,這似乎是在 Dask 中編寫查詢的一種有效方法,盡管鑒於 s3 存儲桶不是公開的,因此很難測試。 您的任何操作都不需要改組,因此它們都應該相當便宜。 對於第二個問題,答案基本上是肯定的,因為您正在下載的數據集大於可用的 memory,因此 Dask 將溢出到磁盤。 微調 Dask 如何管理 memory 有點棘手,如果您有興趣, 這里還有更多內容。

暫無
暫無

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

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