Spark DataFrame行转列实现

什么是DataFrame的行转列?

例如,有这样的需求:“请计算每个省份累计订单量,然后根据每个省份订单量从高到低排列”。如下所示:

+--------+--------+
|province|  amount|
+--------+--------+
|     A省|   10122|
|     B省|     301|
|     C省|23333333|
+--------+--------+

要求以下面指定的格式输出结果:

+-----+---+--------+
|  A省|B省|     C省|
+-----+---+--------+
|10122|301|23333333|
+-----+---+--------+

这就是通常所说的“行转列”。

DataFrame的行转列实现方法

在Spark中有多种方式可以实现这样的行转列。首先构造一个初始的“省份-订单”数据表,代码如下:

val data = Seq(("A省",10122), ("B省",301), ("C省",23333333))

val df = data.toDF("province","amount")
df.show() 

执行以上代码,输出内容如下:

+--------+--------+
|province|  amount|
+--------+--------+
|     A省|   10122|
|     B省|     301|
|     C省|2333333 ......
          

......

抱歉,只有登录会员才可浏览!会员登录


《PySpark原理深入与编程实战》