我dask在 tpc-h 資料集的一個切片上撰寫 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)
我有幾個問題:
這是撰寫所述查詢的最快方法
Dask嗎?我要下載的資料
S3是 48GB。我節點上的記憶體是 16 GB。是否Dask進行批量計算?它是否持久保存到磁盤然后從磁盤讀取?怎么了?
uj5u.com熱心網友回復:
對于您的第一個問題,這似乎是在 Dask 中撰寫查詢的一種有效方法,盡管鑒于 s3 存盤桶不是公開的,因此很難測驗。您的任何操作都不需要改組,因此它們都應該相當便宜。對于第二個問題,答案基本上是肯定的,因為您正在下載的資料集大于可用記憶體,因此 Dask 會溢位到磁盤。微調 Dask 管理記憶體的方式有點棘手,如果您有興趣,這里還有更多內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/422518.html
標籤:
下一篇:Django靜態檔案的單獨位置
