日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hive报错return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

發布時間:2023/12/8 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hive报错return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景:計算一年中每一天的數據,每一天的取值是前一年或者半年的平均值,所以我有兩張臨時表,第一張存放主體的一年中每一天的數據,第二張存放主體近兩年的每一天對應的數據,第一張表左連接第二張表,這樣子進行窗口函數計算即可。
select h1.*,h3.volume,h3.vwap,avg(h3.turnoverval)over(PARTITION by h1.TRADINGITEMID order by h1.natualday asc rows BETWEEN 364 PRECEDING and CURRENT ROW) as turnoverval from dp.tmp5 h1left join dp.tmp6 h3 on h1.TRADINGITEMID = h3.TRADINGITEMID and h1.natualday=h3.pricingdate and h3.volume!=0 and h3.vwap!=0
但是這樣子確報錯,語法沒有問題,單純 avg 會有問題,如果求max 后者其他就不會報錯。嘗試了很久,而跑2019年、2020年的數據是沒有問題的,然而跑2018年是會報錯的,預估是臟數據導致的,但是不管怎樣查詢都查不出數據的問題, 最后發現需要把 h1的非交易日排除掉才行正常執行(這樣子就不能準確的計算前180天的平均值了)
最后想到的辦法是求出sum 和 count,確實可行
select h1.secucode,h1.natualday,h3.volume,h3.vwap, h3.volume * h3.vwap ,SUM(h3.volume * h3.vwap)over(PARTITION by h1.secucode order by h1.natualday asc rows BETWEEN 180 PRECEDING and CURRENT ROW) as turnoverval,count(h3.volume * h3.vwap )over(PARTITION by h1.secucode order by h1.natualday asc rows BETWEEN 180 PRECEDING and CURRENT ROW) as turnovercntfrom dp.tmp5 h1left join dp.tmp_ciqpriceequity h3 on h1.secucode = h3.secucode and h1.natualday=h3.pricingdate

總結:

其實工作中確實會遇到很多莫名其妙的問題,關鍵問題還是對核心理解的不夠深,不過深入理解也是不太現實的。這種情況下最好能夠排查出出現問題的點,找到之后一般是源數據不符合接口導致的,要不然就修改源,要不然就替換接口。總之對于理論能夠實現的邏輯總歸是有辦法的。

總結

以上是生活随笔為你收集整理的hive报错return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。