【发布时间】:2014-04-17 02:26:44
【问题描述】:
使用 Hive,我创建了一个包含以下字段的表:
- ID BIGINT,
- MSISDN 字符串,
- DAY TINYINT,
- 月小,
- 国际年,
- 性别微小,
- 关系状态 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"
或者会有一些不可预见的问题?
我尝试了上面的查询,但它确实可以输出数组中只有“项目”的文件。
【问题讨论】: