Diviser 1 colonne en 3 colonnes en scala
J'ai un dataframe Spark utilisation de scala qui a une colonne que j'ai besoin de split.
scala> test.show
+-------------+
|columnToSplit|
+-------------+
| a.b.c|
| d.e.f|
+-------------+
J'ai besoin de cette colonne de fractionnement pour ressembler à ceci:
+--------------+
|col1|col2|col3|
| a| b| c|
| d| e| f|
+--------------+
Je suis en utilisant Étincelle 2.0.0
Grâce
source d'informationauteur Matt Maurer
Vous devez vous connecter pour publier un commentaire.
Essayer:
Une solution qui évite de sélectionner une partie. Cette fonction est utile lorsque vous voulez juste ajouter de nouvelles colonnes:
À le faire par programmation, vous pouvez créer une séquence d'expressions avec
(0 until 3).map(i => col("temp").getItem(i).as(s"col$i"))
(suppose que vous avez besoin de 3 colonnes comme résultat) et ensuite l'appliquer àselect
avec: _*
syntaxe:De garder toutes les colonnes:
Ceci ajoute des colonnes à l'origine DataFrame et ne pas utiliser
select
et seulement divise une fois en utilisant une temporaire de la colonne: