如何在 Hive 数组中搜索项目?

2023-12-21

我使用 Hive 创建了一个包含以下字段的表:

  • ID 大整数,
  • MSISDN 字符串,
  • 天丁,
  • 月小号,
  • 今年,
  • 性别微小,
  • 关系状态 TINYINT,
  • 教育弦,
  • LIKES_AND_PREFERENCES STRING

通过以下 SQL 命令填充数据:

Insert overwrite table temp_output Select a.ID, a.MSISDN, a.DAY, a.MONTH, a.YEAR, a.GENDER, a.RELATIONSHIPSTATUS, b.NAME,  COLLECT_SET(c.NAME) FROM temp_basic_info a JOIN temp_education b ON (a.ID = b.ID) JOIN likes_and_music c ON (c.ID = b.ID) GROUP BY a.ID, a.MSISDN, a.DAY, a.MONTH, a.YEAR, a.Gender, a.RELATIONSHIPSTATUS, b.NAME;

Likes and Preferences 是一个数组,但我没有足够的远见来指定它(它是一个字符串)。我将如何选择数组中具有特定项目的记录?

是不是这么简单:

select * from table_result where LIKES_AND_PREFERENCES = "item"

还是会出现一些不可预见的问题?

我尝试了上面的查询,但它确实输出了仅包含数组中“项目”的文件。


按以下方式使用 array_contains udf --

 select * 
 from mytable 
 where array_contains(likes_and_preferences,'item') = TRUE 

array_contains 将返回一个可以进行谓词的布尔值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Hive 数组中搜索项目? 的相关文章

随机推荐