【发布时间】:2018-09-29 22:47:07
【问题描述】:
所以我在 Spark Shell 中使用 Scala 完成了这个任务,我们得到了一个大约 300 万条推文的 tsv 文件,我们应该估计下一条推文的位置(这是我们编写的文本文件的输入)关于朴素贝叶斯估计。这样,如果我写“请帮我解决 stackoverflow”,它将输出最有可能在该位置发布推文的获胜者,例如:“伯明翰,0.2”
首先我从 tsv 文件中获取数据并进行一些 rdd 转换:
val t = sc.textFile("PATH-TO-DATASET")
val s = t.map(_.split('\t')) //
val location = s.map(x => x(4))
val locAndTweetText = s.map(x => (x(4),x(10)))
val distinctLoc = location.distinct()
现在我想做但不知道的是:如何遍历每个位置并输出该位置相对于整个数据集的比例?
我尝试过以下变体:
for (e <- distinctLoc) {
val a = location.filter(x => x == e).count()
val b = a / t.count()
println(b)
}
但我总是遇到错误。在此之后,我需要为每个位置的文件的输入词再次执行相同的操作,但是当我什至没有一个工作循环时,我无法执行嵌套的 for 循环。有人知道吗?
【问题讨论】:
-
错误是什么?
-
“我不断收到错误”并不是我们为您提供帮助的足够精确的错误描述。 什么不起作用? 如何不起作用?你的代码有什么问题?您收到错误消息吗?错误信息是什么?你得到的结果不是你期望的结果吗?你期望什么结果,为什么,你得到的结果是什么,两者有什么不同?您正在观察的行为不是期望的行为吗?期望的行为是什么,为什么,观察到的行为是什么,它们有何不同?