我的文件中有以下文本:
Horrid Henry’s hound hunts in the massive Murree mountains. While silly stupid Samuel’s dark dreadful dragon likes to hunt in
skies.
Horrid Henry’s hound and Samuel’s dreadful dragon Dany are fast friends and like to hunt and play together. They call themselves
fantastic fanciful foursome.
我加载此文件并flatMap
如下所示:
lines=sc.textFile("BigData test.txt")
RddWords=lines.flatMap(lambda line: line.split(" "))
这会将其转换为字符串列表(每个单词都是字符串)。我想检查三个连续的单词是否从同一个字母表开始。预期产出如下:
H => 3
M=> 1
S => 1
D => 1
F => 1
以“H”开头的连续单词出现3次。类似地,以“M”开头的连续单词只出现一次。下面显示了这些连续单词的详细出现情况
Horrid Henry’s hound =>2
Henry’s hound hunts => 1
massive Murree mountains =>1
silly stupid Samuel’s =>1
dreadful dragon Dany=>1
fantastic fanciful foursome =>1
我可以编写python函数,只需检查字符串中的三个连续单词。但是我想不出如何在名为RddWords
的并行Rdd上实现该函数。如果我写一个map函数,它将在RddRddWords
中的每个x上分别实现。我将如何处理连续单词?有人能给我指点路吗?
非常感谢
解决方案1
您需要将每条线作为滚动三角图:
然后映射一个函数
f
,该函数提取您想要的信息解决方案2
使用Dataframe API并应用长度为
3
的滚动窗口函数相关问题 更多 >
编程相关推荐