I have a Spark Dataframe with the following contents:
| Name | E1 | E2 | E3 |
|---|---|---|---|
| abc | 4 | 5 | 6 |
I need the various E columns to become rows in a new column as shown below:
| Name | value | EType |
|---|---|---|
| abc | 4 | E1 |
| abc | 5 | E2 |
| abc | 6 | E3 |
This answer
gave me the idea of using explode and I now have the following code:
df.select($"Name", explode(array("E1", "E2", "E3")).as("value"))
The above code gives me the Name and value columns I need, but I still need a way to add in the EType column based on which value in the array passed to explode is being used to populate that particular row.
Output of the above code:
| Name | value |
|---|---|
| abc | 4 |
| abc | 5 |
| abc | 6 |
How can I add the Etype column?
(I am using Spark 2.2 with Scala)
Thanks!