Hadoop Hive 查询将行合并为一行

Hadoop Hive query to merge rows into one row

我需要一个配置单元查询,它根据另一个 table 的优先级将相同的 EAN 行合并到 table 中的一个记录中。

table: 产品

如上图所示,我有来自不同来源 (sourceid) 的不同产品,我只需要一行,根据以下优先级合并所有来源数据。如果优先级“1”源不提供任何字段信息,则该字段信息将从优先级“2”源获取。

Table:优先级

node_id Source_id   Priority
1        62          1
1        303         2
1        202         3

我期待如下所示的结果。

你实际上可以使用collect udf基于一个字段收集所有其他字段。

或者您可以使用一些嵌套数组或结构将数据放入单行中,如果您不想丢失任何数据。