【发布时间】:2015-03-14 14:37:42
【问题描述】:
我正在尝试使用 Apache Spark 进行简单的情感分类。我从一个包含行号、目标(分数)和评论文本的文本文件开始:
lineNumber[;]0[;]这是一条评论。
我这样分成两个 RDD
scores = lines.map(lambda line: (line.split("[;]")[0], line.split("[;]")[1]))
reviews = lines.map(lambda line: (line.split("[;]")[0], line.split("[;]")[2]))
我正在对评论 RDD 执行一些操作(例如拆分单词、删除停用词等),然后尝试构建 TFIDF:
hash = HashingTF().transform(reviews.values())
idf = IDF().fit(hash)
tfidf = idf.transform(hash)
f = reviews.keys().zip(tfidf)
之后,我想将包含 TFIDF 的评论与分数一起加入并进行分类。
reviewsAndScores = scores.join(f).values()
但是,上述两个操作(TFIDF+Zip、Join)在我的机器上都需要很长时间,我从 6G 驱动程序和 6G 执行程序内存开始。在一个相对较小的文件 (330MB) 上,这两个任务每次都需要 1 小时。 对于连接,spark ui 告诉我它获得了 427MB 的输入,需要随机写入 178.4MB。但是,我不太确定这意味着什么。
你有什么提示为什么这些操作这么慢吗?
【问题讨论】:
标签: apache-spark