hive group报错

水深无声 2023-06-12 11:07 108阅读 0赞

开发时假如有如下情景的需求,需要按id分组,但是每个id的经纬度都是一样的,如果HiveQL语句这么写:

  1. SELECT
  2. id,
  3. latitude,
  4. longitude
  5. FROM
  6. t_poi
  7. GROUP BY id ;

则会报错:

  1. FAILED: Error in semantic analysis: Line 2:3 Expression not in GROUP BY key 'latitude'

解决办法:
使用Hive的collect_set ( col )函数,函数功能的更多用法各位可以百度,对于我们这个问题,将HiveQL语句改为如下写法:

  1. SELECT
  2. id,
  3. collect_set(latitude)[0] as latitude,
  4. collect_set(longitude)[0] as longitude
  5. FROM
  6. t_poi
  7. GROUP BY id ;

发表评论

表情:
评论列表 (有 0 条评论,108人围观)

还没有评论,来说两句吧...

相关阅读

    相关 hive group

    开发时假如有如下情景的需求,需要按id分组,但是每个id的经纬度都是一样的,如果HiveQL语句这么写: SELECT id, latitu

    相关 Hive.GROUPING SETS

    如果说聚合函数(Simple UDAF / Generic UDAF)是HQL聚合数据查询或分析的中枢处理器,那GROUP BY可以说是聚合函数的神经了,GROUP BY收集和

    相关 hive group by

    group by 操作: 1,Map端聚合:Map端进行部分聚合 hive.map.aggr用于设定是否在Map端进行聚合,默认hive.map.aggr=tru