Hive中的ROW_NUMBER()问题

时间:2016-04-03 12:15:08

标签: hive indexoutofboundsexception row-number

我正在尝试在hive中使用ROW_NUMBER()函数(版本0.13)。我使用唯一编号进行分区,但是根据交易金额和客户名称进行排序。

虽然这段代码适用于非唯一条件(其中唯一键,排序键相同)最多4k行,但在某些情况下,我获得162k行具有相同的非唯一条件。我得到一个ArrayIndexOutOfBoundException。虽然我可以过滤掉所有这些情况,但由于所有这些数字都是名称具有空字符串值,因此无法解决业务规则实现的目的。

如何在代码中处理此问题,而不是过滤掉。

这是我正在使用的代码:

    ROW_NUMBER() OVER (PARTITION BY CASE_NUMBER ORDER BY CREDIT_AMT DESC, NAME ASC) AS CREDIT_PARTY_NO
    ROW_NUMBER() OVER (PARTITION BY CASE_NUMBER ORDER BY DEBIT_AMT DESC,  NAME ASC) AS DEBIT_PARTY_NO

快速搜索我生成的数量:

COUNT : 162344  CREDIT_AMT : 0  DEBIT_AMT : 2070596 NAME : BLANK    case_number:12345*************

0 个答案:

没有答案