示例:如何pivot和unpivot DataFrame
Spark pivot()函数用于将数据从一个DataFrame/Dataset列pivot/旋转到多个列(将行转换为列),而unpivot用于将其转换回来(将列转换为行)。
pivot()是一种聚合,其中一个分组列值转换为具有不同数据的单独列。
首先,创建一个示例DataFrame,代码如下:
val data = Seq(
("Banana",1000,"美国"),
("Carrots",1500,"美国"),
("Beans",1600,"美国"),
("Orange",2000,"美国"),
("Orange",2000,"美国"),
("Banana",400,"中国"),
("Carrots",1200,"中国"),
("Beans",1500,"中国"),
("Orange",4000,"中国"),
("Banana",2000,"加拿大"),
("Carrots",2000,"加拿大"),
("Beans",2000,"墨西哥"))
import spark.sqlContext.implicits._
val df = data.toDF("Product","Amount","Country")
df.show()
执行以上代码,输出内容如下:
+-------+------+-------+
|Product|Amount|Country|
+-------+------+-------+
| Banana| 1000| 美国|
|Carrots| 1500| 美国|
| Beans| 1600| 美国|
| Orange| 2000| 美国|
| Orange| 2000| ......
......
抱歉,只有登录会员才可浏览!会员登录