Scala 为文本文件中的每条记录创建正/负计数矩阵
我试图用ApacheSpark(使用Scala)中的一包肯定和否定词对一些评论数据进行情绪分析。我是Scala的新手,所以需要一些帮助。程序如下所示: 读取RDDs中的正/负数值Scala 为文本文件中的每条记录创建正/负计数矩阵,scala,apache-spark,Scala,Apache Spark,我试图用ApacheSpark(使用Scala)中的一包肯定和否定词对一些评论数据进行情绪分析。我是Scala的新手,所以需要一些帮助。程序如下所示: 读取RDDs中的正/负数值 val pos_words = sc.textFile("D:/spark4/mydata/pos-words.txt") val neg_words = sc.textFile("D:/spark4/mydata/neg-words.txt") 将评论读入RDD val dataFile = sc.textFile
val pos_words = sc.textFile("D:/spark4/mydata/pos-words.txt")
val neg_words = sc.textFile("D:/spark4/mydata/neg-words.txt")
将评论读入RDD
val dataFile = sc.textFile("D:/spark4/mydata/review_data.txt")
val reviews = dataFile.map(_.replaceAll("[^a-zA-Z\\s]", "").trim().toLowerCase())
将评论平铺成单个单词
val words = reviews.flatMap(_.split(" "))
现在有没有一种方法可以在单词RDD的映射函数中使用pos_单词和neg_单词,并根据每个评论RDD记录分配所有肯定单词和否定单词的计数
期望的产出将是
<Review Text 1>,<#PosWordCount>,<#NegWordCount>
xxxxxxxxxxxxxx,20,10
yyyyyyyyyyyyyy,5,30
,,
XXXXXXXXXXXX,20,10
YYYYYYYYYY,5,30
任何帮助都将不胜感激。要做到这一点,您需要将您的积极和消极词典分发给集群中的所有执行者。在记忆中,有许多人喜欢小而适合。我假设您的评论可能是一个更大的RDD,您希望分发它。因此:
pos\u words.collect().asSet
将词典提取到集合中李>
reviews.map(f)