Spark SQL中列转行(UNPIVOT)的两种方法

行列之间的互相转换是ETL中的常见需求,在Spark SQL中,行转列有内建的PIVOT函数可用,没什么特别之处。而列转行要稍微麻烦点。本文整理了2种可行的列转行方法,供参考。

 

本文链接:https://www.cnblogs.com/hhelibeb/p/10310369.html

测试数据准备

本文的环境是Windows 10, Spark 2.4,开发语言是Python。首先构建一点初始测试数据,

from pyspark.sql import SparkSession spark = SparkSession.builder.appName('TestAPP').enableHiveSupport().getOrCreate() df = spark.createDataFrame([('数学','张三',88), ('语文','张三',92), ('英语','张三',77), ('数学','王五',65), ('语文','王五',87), ('英语','王五',90), ('数学','李雷',67), ('语文','李雷',33), ('英语','李雷',24), ('数学','宫九',77), ('语文','宫九',87), ('英语','宫九',90) ], ['科目','姓名','分数']).orderBy('科目') df.show()

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywswx.html