Regex apachespark中的正则表达式
我有一个文本文件,如下所示:- 这个食谱可以用立式搅拌机制作,也可以用碗、木勺和强壮的手臂手工制作。如果您使用咸黄油,请省略此配方中添加的盐。Regex apachespark中的正则表达式,regex,scala,apache-spark,pattern-matching,Regex,Scala,Apache Spark,Pattern Matching,我有一个文本文件,如下所示:- 这个食谱可以用立式搅拌机制作,也可以用碗、木勺和强壮的手臂手工制作。如果您使用咸黄油,请省略此配方中添加的盐。 百胜 配料 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
百胜
配料
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)。将面粉、
和发酵粉放入碗中,用力搅拌,备用。
我想提取单词成分和方法之间的数据
我已经写了一个正则表达式,你需要做的是
def getWhatIneed(s):
output = <my regexp>
return output
b = sc.WholeTextFiles(...)
c = b.map(getWhatIneed)
问题是,函数定义中的输出应该返回您所说的字符串,但regexp的类型是scala.util.matching.regex,因此它会给出一个类型不匹配错误。在这种情况下,我的方法应该是什么?这是一个scala regex问题。无论如何,我在这方面不是专家。通过查找scala api文档,似乎需要将字符串传递给regexp实例,然后使用findAllMatchIn之类的方法提取输出。
b
是一个RDD,regex。findAllIn
应用于字符串。因此,您需要将regex应用于RDD集合的字符串。可能使用类似于map
或flatmap
def getWhatIneed(s):
output = <my regexp>
return output
b = sc.WholeTextFiles(...)
c = b.map(getWhatIneed)
print c.collect()