通过使用 hive 或 spark SQL 将一列作为参考来生成新列

Posted

技术标签:

【中文标题】通过使用 hive 或 spark SQL 将一列作为参考来生成新列【英文标题】:Generate new column by taking one column as a reference using hive or spark SQL 【发布时间】:2021-08-16 13:15:43 【问题描述】:

假设我们有一个如下所示的表格:

    Band |name |age
     ---------------------------
    1        abc   18
    1        xyz   20
    2        aaa   18
    2        bbb   19
    3        ccc   22
    4        ddd   28

预期输出:

    Band |name |age |new_col
    ------------------------------
    1      abc   18  [aaa, bbb, ccc, ddd] 
    1      xyz   20  [aaa, bbb, ccc, ddd] 
    2      aaa   18  [ccc, ddd]
    2      bbb   19  [ccc, ddd]
    3      ccc   22  [ddd]
    4      ddd   28  [null]

这里根据波段,我们需要得到new_col。 谢谢你

【问题讨论】:

【参考方案1】:

试试这个

select band, name, age, 
       collect_set(name) over(order by band range between 1 following and unbounded following) new_col
 from table_name

【讨论】:

以上是关于通过使用 hive 或 spark SQL 将一列作为参考来生成新列的主要内容,如果未能解决你的问题,请参考以下文章

如何通过SQL将一列JCheckBox添加到JTable? [重复]

在 HIVE 上插入 Spark-SQL 插件

通过spark-sql快速读取hive中的数据

通过 squirrel sql 连接到 hive/spark sql 时读取超时

使用 Critera 或 QueryOver API 将一列连接到多个表

Spark SQL(通过 HiveContext 进行 Hive 查询)总是创建 31 个分区