在許多資料湖中,我看到資料按年、月、日劃分,例如:
year=2019 / month=05 / day=15
這樣做與簡單地按日期磁區相比有什么優勢?例如:
date=20190515
我能想到的唯一優勢是,例如,如果分析師想要查詢特定月/年的所有資料。如果只是按日期進行磁區,那么他們將不得不撰寫一個對磁區鍵進行計算的查詢,例如下面的偽代碼:
SELECT * FROM myTable WHERE LEFT(date,4) = 2019
spark仍然可以對上述查詢進行磁區修剪嗎?對于更嵌套的磁區結構,還有其他我沒有考慮過的優點嗎?
謝謝
uj5u.com熱心網友回復:
我認為這是一個缺點!因為拆分日期部分會使日期過濾變得更加困難。例如,您想查詢最近 10 天的可能跨月邊界的資料?使用單個日期值,您可以運行簡單的查詢,例如
...where date >= current_date() - interval 10 days
Spark 會為您找出正確的磁區。Spark 還可以處理其他日期函式,例如year(date) = 2019or month(date) = 2,它會再次為您正確進行磁區修剪。
我總是鼓勵使用單個日期列進行磁區。讓 Spark 完成這項作業。
另外,要記住的重要一點是日期格式應該是yyyy-MM-dd.
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/416369.html
標籤:
上一篇:將字串型別列百分比轉換為小數
下一篇:展平資料框中的字串陣列欄位
