Arrays 具有多个表的配置单元集合UDF

Arrays 具有多个表的配置单元集合UDF,arrays,hive,set,hiveql,Arrays,Hive,Set,Hiveql,我有一个主表,如下所示: event_id,location 1,France 2,Germany 3,Italy 4,Spain 5,Russia Event_id,Furniture_id,Furniture_type 1,25,Chair 1,30,Chair 1,40,Baloon 2,25,Chair 2,35,Carpet 我有几个二级表(准确地说,是五个),其中有一列event_id,并包含其他列,其中包括在五个不同大厅的活动期间使用的家具(id和类型)的信息。 例如,表1如下

我有一个主表,如下所示:

event_id,location
1,France
2,Germany
3,Italy
4,Spain
5,Russia
Event_id,Furniture_id,Furniture_type
1,25,Chair
1,30,Chair
1,40,Baloon
2,25,Chair
2,35,Carpet
我有几个二级表(准确地说,是五个),其中有一列
event_id
,并包含其他列,其中包括在五个不同大厅的活动期间使用的家具(id和类型)的信息。 例如,表1如下所示:

event_id,location
1,France
2,Germany
3,Italy
4,Spain
5,Russia
Event_id,Furniture_id,Furniture_type
1,25,Chair
1,30,Chair
1,40,Baloon
2,25,Chair
2,35,Carpet
表2如下:

Event_id,Furniture_id,Furniture_type
1,25,Chair
1,45,Chair
1,50,Ball
2,25,Chair
2,70,Chair
event_id,location,furniture_ids
    1,France, [25,30,45]
    2,Germany, [25,70]
    3,Italy, etc
    4,Spain, etc
    5,Russia, etc
我的目标是得到一个最终的表,其中包含每个活动的一组家具ID,仅在家具_type=“Chair”中。通常我使用
collect\u set
UDF来实现这样的目标,但由于我需要在event\u id上连接几个表并将此函数应用于几个列,因此它实际上不起作用,因为
collect set
UDF只接受一个参数。。 因此,所需的表格应如下所示:

Event_id,Furniture_id,Furniture_type
1,25,Chair
1,45,Chair
1,50,Ball
2,25,Chair
2,70,Chair
event_id,location,furniture_ids
    1,France, [25,30,45]
    2,Germany, [25,70]
    3,Italy, etc
    4,Spain, etc
    5,Russia, etc
提前感谢您的帮助