首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用聚合在配置单元中透视数据

如何使用聚合在配置单元中透视数据
EN

Stack Overflow用户
提问于 2018-09-06 02:42:41
回答 2查看 197关注 0票数 2

我有一个像下面这样的表数据,我想用聚合来透视数据。

代码语言:javascript
复制
ColumnA    ColumnB            ColumnC
1          complete            Yes
1          complete            Yes
2          In progress         No
2          In progress         No 
3          Not yet started     initiate 
3          Not yet started     initiate 

想要像下面这样透视

代码语言:javascript
复制
ColumnA          Complete    In progress     Not yet started
1                 2               0                0
2                 0               2                0
3                 0               0                2

我们有没有办法在hive或Impala中实现这一点?

EN

回答 2

Stack Overflow用户

发布于 2018-09-06 03:12:50

casesum聚合一起使用:

代码语言:javascript
复制
select ColumnA,    
       sum(case when ColumnB='complete'        then 1 else 0 end) as Complete,
       sum(case when ColumnB='In progress'     then 1 else 0 end) as In_progress,
       sum(case when ColumnB='Not yet started' then 1 else 0 end) as Not_yet_started
  from table
 group by ColumnA
 order by ColumnA --remove if order is not necessary
;
票数 2
EN

Stack Overflow用户

发布于 2018-09-07 04:40:44

这就是在spark scala中实现这一点的方法。

代码语言:javascript
复制
     val conf = spark.sparkContext.hadoopConfiguration
        val test = spark.sparkContext.parallelize(List(  ("1", "Complete", "yes"),
                                        ("1", "Complete", "yes"),
                                        ("2", "Inprogress", "no"),
                                        ("2", "Inprogress", "no"),
                                       ("3", "Not yet started", "initiate"),
                                        ("3", "Not yet started", "initiate"))


                                        ).toDF("ColumnA","ColumnB","ColumnC")
      test.show()
       val test_pivot = test.groupBy("ColumnA")
                           .pivot("ColumnB")
                           .agg(count("columnC"))

  test_pivot.na.fill(0)show(false)


       }

和输出

代码语言:javascript
复制
|ColumnA|Complete|Inprogress|Not yet started|
+-------+--------+----------+---------------+
|3      |0       |0         |2              |
|1      |2       |0         |0              |
|2      |0       |2         |0              |
+-------+--------+----------+---------------+
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52191603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档