我新的火花和Scala來自R background.After未來RDD的幾個轉變,我得到類型的RDD模式匹配 - 火花斯卡拉RDD
Description: RDD[(String, Int)]
現在我想申請一個正則表達式字符串RDD並從字符串中提取子字符串,並在新顏色中添加子字符串。
輸入數據:
BMW 1er Model,278
MINI Cooper Model,248
輸出我要找:
Input | Brand | Series
BMW 1er Model,278, BMW , 1er
MINI Cooper Model ,248 MINI , Cooper
,其中品牌和系列新近從字符串RDD
計算子我迄今所做的。
我可以使用正則表達式來實現此字符串,但我可以應用所有行。
val brandRegEx = """^.*[Bb][Mm][Ww]+|.[Mm][Ii][Nn][Ii]+.*$""".r //to look for BMW or MINI
那麼我可以用
brandRegEx.findFirstIn("hello this mini is bmW testing")
但我怎麼可以用它RDD的所有行,並應用不同的正則表達式來實現如上的輸出。
我閱讀了這段代碼片段,但不知道如何完全放它。
val brandRegEx = """^.*[Bb][Mm][Ww]+|.[Mm][Ii][Nn][Ii]+.*$""".r
def getBrand(Col4: String) : String = Col4 match {
case brandRegEx(str) =>
case _ => ""
return 'substring
}
任何幫助,將不勝感激!
感謝
可以詳細說明這裏究竟是什麼問題?正則表達式,模式匹配還是RDD轉換? – zero323
@ zero323:對不起,如果問題不可讀。基本上我想使用正則表達式在字符串中進行模式匹配。這是在Spark-scala RDD中。 – user3560220