[英]Regex in Apache Spark
我有一個文本文件,內容如下:
可以用立式攪拌機或用碗,
木勺和結實的手臂。 如果您使用咸黃油,請省略
在這個食譜中加了鹽。
百勝
配料
1 1/4杯通用面粉(160克)
1/4茶匙鹽
1/2茶匙發酵粉
室溫下1/2杯無鹽黃油(1條或8湯匙或112克)
1/2杯白糖(90克)
1/2杯深紅糖,包裝(85克)
1個大雞蛋
1茶匙香草精
1/2茶匙速溶咖啡顆粒或速溶咖啡粉
1/2杯切碎的澳洲堅果(3 1/2盎司或100克)
1/2杯白巧克力片
方法
1將烤箱預熱至350°F(175°C)。 大力攪拌面粉,
和發酵粉放在碗里,放在一旁。
我想提取“成分”和“方法”一詞之間的數據。
我寫了一個正則表達式(?s)(?<=\\bIngredients\\b).*?(?=\\bMethod\\b)
提取數據,並且工作正常。
但是當我嘗試像下面這樣使用spark-shell時,它並沒有給我
任何東西。
val b = sc.textFile("/home/akshat/file.txt")
val regex = "(?s)(?<=\bIngredients\b).*?(?=\bMethod\b)".r
regex.findAllIn(b).foreach(println)
請告訴我我要去哪里錯了,應該采取什么步驟
糾正這個嗎?
提前致謝!
您需要做的是
大段引用
def getWhatIneed(s):
output = <my regexp>
return output
b = sc.WholeTextFiles(...)
c = b.map(getWhatIneed)
現在,c也是一個RDD。 您需要先收集它,然后再打印。 collect的輸出是一個普通的數組/列表
print c.collect()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.