我使用 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"
还是会出现一些不可预见的问题?
我尝试了上面的查询,但它确实输出了仅包含数组中“项目”的文件。