我正在尝试在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*************