2017-02-01 9 views
0

spark scalaで区切られたテキストファイルを読んでいます。区切り文字〜の前にすべての正規表現を作成しようとしています。現在、私はすべてのスペースがトリミングされている場所です。私は、これを達成するための提案や改善を探しています。おそらく、トリム関数のいくつかの並べ替えは、より簡単になります。区切り記号の前と後にすべてのスペースをトリムする正規表現Spark Scala

def truncateRDD(fileName : String): RDD[String] = { 
    val rdd = sc.textFile(fileName) 
    rdd.map(lines => lines.replaceAll("""[\t\p{Zs}]+""", "")) 
    } 

入力:

20161111 ~  ~10~1234~ "This is an example" ~P15~-EXAMPLE~2017~ 2014567EXAMPLE 

所望の出力:

20161111~~10~1234~"This is an example"~P15~-EXAMPLE~2017~2014567EXAMPLE 

答えて

2

最も簡単な方法は、おそらく各結果のトークンを、あなたの区切り文字で(~)を分割して、trimことであろう。そして、 - mkStringを使用して戻って単一の文字列にトークンを組み合わせる:

また
rdd.map(_.split("~").map(_.trim).mkString("~")) 

- 正規表現を使用して:

rdd.map(_.replaceAll("\\s*?~\\s*", "~")) 
関連する問題