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
提前感谢您的帮助