[英]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.