1,261
社区成员
发帖
与我相关
我的任务
分享
val corpus: RDD[(String,String )] = sparkContext.wholeTextFiles(originalPath) //
val startTime = System.currentTimeMillis()
val userCorpus = corpus.map(
x => (
x._1.substring(x._1.lastIndexOf("/")+1),
x._2.split("\n"). //将整个文档分成行
map(_.split("\\s")).flatMap(_.filter(_.length > 2).filter( x => !x.contains("@") && !x.contains("http"))). //对分成的每一行进行分词,去除长度小于3的单词,去除含有'@'的词语,去除 http 的url 后,进行flatMap
map(_.split("\\s|\\^|#|\\.|\"|\\,|!|\\)|\\(|\\?|\\:|\\'|/")). //对之前的分词在进行过滤,去掉标点符号
flatMap(_.filter(_.length > 2).filter(_.forall(java.lang.Character.isLetter))).mkString(" ")
))
userCorpus.saveAsHadoopFile(goalPath,classOf[String],classOf[String],classOf[RDDMultipleTextOutputFormat])
val corpus: RDD[(String,String )] = sparkContext.wholeTextFiles(originalPath) //
val startTime = System.currentTimeMillis()
val userCorpus = corpus.map(
x => (
x._1.substring(x._1.lastIndexOf("/")+1),
x._2.split("\n"). //将整个文档分成行
). flatMap(_.split("\\s")).filter().....
你多拆几个rdd出来写行不行?