Я хочу переместить некоторые столбцы моей таблицы в строку. Я использую Java и Spark 2.1.2. Вот мой стол:
+-----+-----+-----+-----+-----+
| A |col_1|col_2|col_3|col_4|
+-----+-----------------+------+
| 1 | 0.0| 0.6| 0.8| 0.9|
| 2 | 0.6| 0.7| 0.7| 1.2|
| 3 | 0.5| 0.9| 1.8| 9.1|
| ...| ...| ...| ...| ...|
Я бы хотел что-то подобное:
+-----+--------+-----------+
| A | col_id | col_value |
+-----+--------+-----------+
| 1 | col_1| 0.0|
| 1 | col_2| 0.6|
| 1 | col_3| 0.8|
| ... | ... | ...|
| 2 | col_1| 0.6|
| 2 | col_2| 0.7|
| ...| ...| ...|
| 3 | col_1| 0.5|
| 3 | col_2| 0.9|
| ...| ...| ...| and so on
Кто-нибудь знает, как я могу это сделать? Я знаю, что решение существует для Python, но я пытаюсь сделать это, используя Java.
Я попробовал этот метод
df.selectExpr("stack(4, 'col_1', col_1, 'col_2', col_2', col_3', col_3,'col_4', col_4)as (Key,Value)");
Но он не работает.
РЕДАКТИРОВАТЬ:
Мне удалось получить результат, используя вышеуказанный подход. Оказывается, я использовал SparkContext вместо SQLContext, с которым он работал отлично.