【发布时间】:2019-02-20 00:42:27
【问题描述】:
我想使用 spark 数据框将行转换为列。
我的桌子是这样的
Eno,Name
1,A
1,B
1,C
2,D
2,E
我想把它转换成
Eno,n1,n2,n3
1,A,B,C
2,D,E,Null
我在下面的代码中使用了这个:-
val r = spark.sqlContext.read.format("csv").option("header","true").option("inferschema","true").load("C:\\Users\\axy\\Desktop\\abc2.csv")
val n =Seq("n1","n2","n3"
r
.groupBy("Eno")
.pivot("Name",n).agg(expr("coalesce(first(Name),3)").cast("double")).show()
但我得到的结果是-->
+---+----+----+----+
|Eno| n1| n2| n3|
+---+----+----+----+
| 1|null|null|null|
| 2|null|null|null|
+---+----+----+----+
任何人都可以帮助获得期望的结果。
【问题讨论】:
标签: scala apache-spark hadoop hive bigdata