Extraire caractères d'une chaîne (substring ?)

Modérateur : Crucianu

Répondre
jessd
Messages : 1
Inscription : 08 juin 2016 17:28

Extraire caractères d'une chaîne (substring ?)

Message par jessd » 22 juin 2016 23:42

Bonjour,

Je souhaite savoir comment extraire les 10 premiers caractères d'une chaîne de caractères.
Par exemple, je dispose d'un tableau qui ne contient qu'une seule colonnes et qui s'appelle "dates" :

Code : Tout sélectionner

scala> dates.take(5)
res1: Array[String] = Array(2011-05-18 16:30:35, 2011-05-20 22:57:39, 2011-05-19 14:50:18, 2011-05-24 01:41:38, 2011-05-19 18:26:13)
Comme on peut le constater, il y a les dates et les heures, j'ai besoin de récupérer uniquement les dates, donc les 10 premiers caractères.

Je n'arrive pas à utiliser la fonction substring :

Code : Tout sélectionner

scala> val dates2 = substring(dates, 1, 10)
<console>:65: error: type mismatch;
 found   : org.apache.spark.rdd.RDD[String]
 required: org.apache.spark.sql.Column
       val dates2 = substring(dates, 1, 10)
                              ^
Comment peut-on faire ça ?
Merci d'avance

Crucianu
Messages : 17
Inscription : 21 janv. 2015 18:35

Re: Extraire caractères d'une chaîne (substring ?)

Message par Crucianu » 30 nov. 2016 20:54

Bonjour,

Ici "dates" semble être un RDD de chaînes de caractères. C'est ce qu'on infère à partir du fait que dates.take(5) retourne un Array[String] de chaines de caractères.

Vous souhaitez appliquer une transformation à chaque chaîne qui compose le RDD "dates", pour obtenir un autre RDD "dates2" composé des chaînes transformées. Vous devez donc écrire cette transformation sous la forme d'une fonction anonyme à appliquer avec un .map :

dates2 = dates.map(d => d.substring(10))

(il y a de nombreuses possibilités d'extraire une sous-chaine en scala ou en java, à part substring)

Vous ne pouvez pas appliquer directement à un RDD (= collection potentiellement distribuée de items, ici de chaines) une fonction qui ne peut manipuler qu'un item.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité