У меня есть один фрейм данных, который имеет много столбцов почти 50 плюс (как показано ниже),
+----+----+---+----+----+---+----+---+----+----+---+...
|c1 |c2 |c3 |c4 |c5 |c6 |c7 |c8 |type|clm |val |...
+----+----+---+----+----+---+----+---+----+----+---+...
| 11| 5.0|3.0| 3.0| 3.0|4.0| 3.0|3.0| t1 | a |5 |...
+----+----+---+----+----+---+----+---+----+----+---+...
| 31| 5.0|3.0| 3.0| 3.0|4.0| 3.0|3.0| t2 | b |6 |...
+----+----+---+----+----+---+----+---+----+----+---+...
| 11| 5.0|3.0| 3.0| 3.0|4.0| 3.0|3.0| t1 | a |9 |...
+----+----+---+----+----+---+----+---+----+----+---+...
Я хочу преобразовать одно из значений столбца во многие столбцы, поэтому подумайте над использованием приведенного ниже кода
df.groupBy("type").pivot("clm").agg(first("val")).show()
это преобразование значений строки в столбцы, но другие столбцы (c1 - c8) не поступают как часть результирующих данных.
так что можно использовать метод ниже, чтобы получить всеCloumns после pivot
df.groupBy ("c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8", "type").pivot ("clm"). agg (first ("val")). show ()