繁体   English   中英

如何从RDD中提取文本?

[英]How to extract text from a RDD?

我正在尝试从书中提取文字。 book.txt中的示例行:

作者 :但是,玛丽警告母亲,自从去年夏天工作以来,她没有改变过。
夏天是温暖的夏天,这个城市到处都是游客。

这是我的代码:

val bookRDD = sc.textFile(“file://test/book.txt”);
val sentenceRDD = bookRDD.filter(line => line.contains(“Author:”))

该代码捕获包含Author:所有第一行Author:

作者 :但是,玛丽警告母亲,自从去年夏天工作以来,她没有改变过。”

这很好,但是我需要获取Author:的文本,并排除Author:所以我有:

但是,玛丽警告母亲,自从去年夏天工作以来,她没有改变过。

您能帮我写一下“ 作者 :”后面的文字代码吗? 我正在尝试在RDD中执行此操作。

过滤后,您可以将rdd映射为将String Author:替换为空白。 例如

val bookRDD = sc.textFile(“file://test/book.txt”);
val sentenceRDD = bookRDD.filter(line => line.contains(“Author:”)).map(line => line.replaceFirst("Author: ", ""))

您可以在此处使用多种String操作技术。 您可以使用substringreplaceAllsplit (可能)

这是带有replaceAll的一个

rdd.filter( _.startsWith("Author:") )
   .map(_.replaceAll("Author:" , "").trim )
   .first

// String = However, Mary warns her mother that she hasn't changed since she has worked last summer.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM