【发布时间】:2018-05-03 02:40:52
【问题描述】:
我在 spark 中有这个数据集,
val sales = Seq(
("Warsaw", 2016, "facebook","share",100),
("Warsaw", 2017, "facebook","like",200),
("Boston", 2015,"twitter","share",50),
("Boston", 2016,"facebook","share",150),
("Toronto", 2017,"twitter","like",50)
).toDF("city", "year","media","action","amount")
我现在可以像这样按城市和媒体对它进行分组,
val groupByCityAndYear = sales
.groupBy("city", "media")
.count()
groupByCityAndYear.show()
+-------+--------+-----+
| city| media|count|
+-------+--------+-----+
| Boston|facebook| 1|
| Boston| twitter| 1|
|Toronto| twitter| 1|
| Warsaw|facebook| 2|
+-------+--------+-----+
但是,我怎样才能将媒体和动作组合在一列中,所以预期的输出应该是,
+-------+--------+-----+
| Boston|facebook| 1|
| Boston| share | 2|
| Boston| twitter| 1|
|Toronto| twitter| 1|
|Toronto| like | 1|
| Warsaw|facebook| 2|
| Warsaw|share | 1|
| Warsaw|like | 1|
+-------+--------+-----+
【问题讨论】:
-
是 pyspark 还是 scala?
-
我对任何解决方案都很满意。两者都很好。甚至 spark-sql 也可以。
标签: scala apache-spark pyspark apache-spark-sql pyspark-sql