Le Pattern matching - spark scala CA

Je suis nouveau à l'Allumage et à la Scala en provenance de la R de fond.Après quelques transformations de CA, je reçois un CA de type

Description: RDD[(String, Int)]

Maintenant, je veux appliquer une expression Régulière sur la Chaîne de RDD et d'en extraire des sous-chaînes de la Corde, et d'ajouter une sous-chaîne dans une nouvelle coloumn.

Des Données D'Entrée :

BMW 1er Model,278
MINI Cooper Model,248

Sortie, je suis à la recherche d' :

   Input                  |  Brand   | Series      
BMW 1er Model,278,          BMW ,        1er        
MINI Cooper Model ,248      MINI ,      Cooper

où la Marque et de la Série sont calculés à nouveau les sous-chaînes de la Chaîne de RDD

Ce que j'ai fait jusqu'à présent.

J'ai pu réaliser ce pour une Chaîne à l'aide de l'expression régulière, mais je cani appliquer bof toutes les lignes.

 val brandRegEx = """^.*[Bb][Mm][Ww]+|.[Mm][Ii][Nn][Ii]+.*$""".r //to look for BMW or MINI

Alors je peux utiliser

brandRegEx.findFirstIn("hello this mini is bmW testing")

Mais comment puis-je l'utiliser pour toutes les lignes de RDD et d'appliquer les différents expression régulière pour atteindre la sortie en tant que ci-dessus.

J'ai lu sur ce fragment de code, mais vous ne savez pas comment l'éteindre complètement.

val brandRegEx = """^.*[Bb][Mm][Ww]+|.[Mm][Ii][Nn][Ii]+.*$""".r

def getBrand(Col4: String) : String = Col4 match {
    case brandRegEx(str)  =>  
    case _ => ""
    return 'substring
}

Toute aide serait appréciée !

Grâce

  • Pourriez préciser ce qu'est exactement la question ici? Les expressions régulières, correspondant à un modèle ou CA transformations?
  • Désolé si la question n'est pas lisible. Fondamentalement, je veux faire la correspondance de Motif dans une chaîne de caractères à l'aide d'expressions régulières. C'est dans Spark-scala RDD.
InformationsquelleAutor user3560220 | 2015-12-02