#scala #apache-spark
Вопрос:
Вот ссылка на пример того, чего я хочу достичь: https://community.powerbi.com/t5/Desktop/Append-Rows-using-Another-columns/m-p/401836. По сути, мне нужно объединить все строки пары столбцов в другую пару столбцов. Как я могу сделать это в Spark Scala?
Ввод
Выход
Ответ №1:
Поправьте меня, если я ошибаюсь, но я понимаю, что у вас есть фрейм данных с 4 столбцами, и вы хотите, чтобы два из них были в предыдущих двух столбцах, верно?
Например, с этим вводом (только две строки для простоты)
df.show
---- ---------- ----------- ---------- ---------
|name| date1| cost1| date2| cost2|
---- ---------- ----------- ---------- ---------
| A|2013-03-25|19923245.06| | |
| B|2015-06-04| 4104660.00|2017-10-16|392073.48|
---- ---------- ----------- ---------- ---------
С помощью всего нескольких вариантов выбора и объединения вы можете достичь того, чего хотите
df.select("name", "date1", "cost1")
.union(df.select("name", "date2", "cost2"))
.withColumnRenamed("date1", "date")
.withColumnRenamed("cost1", "cost")
---- ---------- -----------
|name| date| cost|
---- ---------- -----------
| A|2013-03-25|19923245.06|
| B|2015-06-04| 4104660.00|
| A| | |
| B|2017-10-16| 392073.48|
---- ---------- -----------