我有一些记录,其中每一行都属于某些类别(数据类型-字符串数组)和一个单独的唯一类别列表(数据类型-字符串)。我需要匹配每一行与唯一的列表,并为它创建标志。
Input:
------
ID Category
1 ["Physics","Math"]
2 ["Math"]
3 ["Math,"Chemistry"]
4 ["Physics","Computer"]
现在我在本地excel中有单独的类别唯一列表,如下所示:
Unique Category
["Physics"]
["Math"]
["Chemistry"]
["Computer"]
最终输出应如下所示:
ID Category Math_F Physics_F Computer_F Chemistry_F
1 ["Physics","Math"] 1 1 0 0
2 ["Math"] 1 0 0 0
3 ["Math,"Chemistry"] 1 0 0 1
4 ["Physics","Computer"] 0 1 1 0
有人能帮忙询问一下,步骤和解释一下吗。我是新来的Hive。
1条答案
按热度按时间ia2d9nvy1#
使用
array_contains()
:如果希望使用唯一类别数组动态构造列,那么可以使用其他工具来构建查询。例如,可以使用shell脚本来完成。
请参见这个基于预定义数组构建sql的示例。您可以轻松地添加从文件读取的数组:
结果:
您可以向上述脚本添加配置单元调用:
hive -e "$sql"
执行它,或者将它保存到文件中。