我正在嘗試使用 spark 讀取 parquet 檔案,如果我想讀取 6 月份的資料,我將執行以下操作:
"gs://bucket/Data/year=2021/month=6/file.parquet"
如果我想讀取所有月份的資料,我將執行以下操作:
"gs://bucket/Data/year=2021/month=6/file.parquet"
如果我想閱讀五月的前兩天:
"gs://bucket/Data/year=2021/month=5/day={1,2}file.parquet"
如果我想閱讀十一月和十二月:
"gs://bucket/Data/year=2021/month={11,12}/file.parquet"
你明白了……但是如果我有一個包含月份、日期鍵、值對的字典怎么辦……例如{1: [1,2,3], 4: [10,11,12,13]}--> 這意味著我需要讀取天數 [ 1,2,3]from January,以及天數[10,11,12,13]from April. 我將如何將其反映為路徑的通配符。
謝謝
uj5u.com熱心網友回復:
您可以將路徑串列傳遞給 DataFrameReader:
months_dict = {1: [1, 2, 3], 4: [10, 11, 12, 13]}
paths = [
f"gs://bucket/Data/year=2021/month={k}/day={{{','.join([str(d) for d in v])}}}/*.parquet"
for k, v in months_dict.items()
]
print(paths)
# ['gs://bucket/Data/year=2021/month=1/day={1,2,3}/*.parquet', 'gs://bucket/Data/year=2021/month=4/day={10,11,12,13}/*.parquet']
df = spark.read.parquet(*paths)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/387871.html
