Я хотел разделить столбец DataFrame (col3
) на несколько столбцов (col_a
, col_b
, col_c
).И заменить один столбец несколькими столбцами.
+---------------------------------+
|col1|col2| col3 |col4|col5|col6 |
| a| b| a,b,c | d | n | r |
| d| e| f,f,f | p | b | null|
+---------------------------------+
Поэтому я разделил столбец следующим образом:
val new_DF = original_DF.withColumn("_tmp", split($"col3", "\\,")).select(
$"_tmp".getItem(0).as("col_a"),
$"_tmp".getItem(1).as("col_b"),
$"_tmp".getItem(2).as("col_c")
).drop("_tmp")
Но new_DF
содержит только новые три столбца,Как я могу сделать новые столбцы частью оригинальной original_DF
без col3
?
UPD: Мне удалось достичь желаемого результата, но это не выглядит красивосовсем.Буду благодарен за любые предложения по улучшению этого подхода.
val new_DF = original_DF
.withColumn("col_a", split($"col3", "\\,").getItem(0))
.withColumn("col_b", split($"col3", "\\,").getItem(1))
.withColumn("col_c", split($"col3", "\\,").getItem(2))
.drop("col3")