Spark: Convertir la colonne de chaîne en un tableau
Comment convertir une colonne qui a été lu comme une chaîne de caractères dans une colonne de tableaux?
c'est à dire de convertir à partir de ci-dessous le schéma
scala> test.printSchema
root
|-- a: long (nullable = true)
|-- b: string (nullable = true)
+---+---+
| a| b|
+---+---+
| 1|2,3|
+---+---+
| 2|4,5|
+---+---+
:
scala> test1.printSchema
root
|-- a: long (nullable = true)
|-- b: array (nullable = true)
| |-- element: long (containsNull = true)
+---+-----+
| a| b |
+---+-----+
| 1|[2,3]|
+---+-----+
| 2|[4,5]|
+---+-----+
Merci de partager à la fois scala, python et la mise en œuvre, si possible.
Sur une note connexe, comment dois-je prendre soin d'elle lors de la lecture du fichier lui-même?
J'ai des données à ~450 colonnes et quelques-uns d'entre eux, je veux préciser dans ce format.
Je suis actuellement la lecture dans pyspark comme ci-dessous:
df = spark.read.format('com.databricks.spark.csv').options(
header='true', inferschema='true', delimiter='|').load(input_file)
Grâce.
OriginalL'auteur Nikhil Utane | 2017-06-22
Vous devez vous connecter pour publier un commentaire.
Il existe plusieurs méthode,
La meilleure façon de le faire est d'utiliser
split
de la fonction et de la fonte àarray<long>
Vous pouvez également créer simple udf de convertir les valeurs
Espérons que cette aide!
OriginalL'auteur Shankar Koirala
À l'aide d'un UDF serait de vous donner exacte nécessaire de schéma. Comme ceci:
Il vous donnerait le schéma comme suit:
Autant que l'application du schéma sur la lecture de fichier lui-même est concerné, je pense que c'est une tâche difficile. Donc, pour maintenant, vous pouvez appliquer la transformation après la création de
DataFrameReader
detest
.J'espère que cela aide!
OriginalL'auteur himanshuIIITian
En python (pyspark), il serait:
OriginalL'auteur Ariana Bermúdez