hive分區處理注意點

在優化一個使用4W個map的job的時候,發現了一個使用hive的注意點,跟大家分享下。

hive表中一般都有分區,在程序裏我們會動態取某個分區裏的數據,這時分區值就是一個函數。這個函數的選擇就是關鍵了。
優化前的分區函數是: dt = date_sub(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'), 2) (水平有限,當時就這麼寫了) ,map數:4W+
優化後的分區函數是:dt = sysdate( - 2) (日期處理函數),map數:860

之前map數過多是否是摟了很多分區,這個還不太確定,有哪位大神知道,麻煩告訴我下。


代碼與業務有關,就不方便放這了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章