我需要一些帮助,将带有Apache Spark的数据从行格式转换为列格式。
输入格式:
+--+-----+-----+
|id |name|value|
+--+-----+-----+
| 1| a| m1|
| 1| b| m2|
| 1| c| m3|
| 1| d| m4|
| 1| e| m1|
| 2| b| m2|
| 2| c| m3|
| 2| f| m1|
| 2| g| m3|
| 2| h| m4|
| 2| i| m1|
| 2| k| m2|
| 3| a| m3|
| 3| b| m4|
| 3| c| m5|
| 3| d| m1|
| 3| e| m2|
| 3| f| m3|
| 3| g| m4|
| 3| h| m5|
+--+-----+-----+
输出格式:
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|id|a |b |c |d |e |f |g |h |i |k |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| 1| m1| m2| m3| m4| m1| x | x | x | x | x|
| 2| x | m2| m3| x | x | m1| m3| m4| m1|m2|
| 3| m3| m4| m5| m1| m2| m3| m4| m5| x | x|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
我希望大约有600个唯一的“名称”列和几百万个id列。
好像我可以绕过name列,但是我需要按原样的字符串值,而无需任何聚合。
val grouped_ds = ds.groupBy("id","LoanID").pivot("name").agg("value"???)
感谢您的帮助。