【发布时间】:2022-01-21 03:15:04
【问题描述】:
我设法制作了一个如下所示的 RDD(在 Pyspark 中):
[('This', (0, 1)), ('is', (0, 1)), ('the', (0, 1)), ('100th', (0, 1))...]
我使用了以下代码:
RDD=sc.textFile(_filepath_)
test1 = RDD.zipWithIndex().flatMap(lambda x: ((i,(x[1],1)) for i in x[0].split(" ")))
实际上,[(word, (line, freq)] 所以上面的单词来自文件的第一行(因此是 0),freq 是文本中所有单词的 1,我希望它计算这个单词出现的次数这个特定的行,用于整个 RDD。
我想到了 .reduceByKey(lambda x, y: x + y),但是当我之后执行.take(5) 之类的操作时,它会冻结(Ubuntu 终端 - 具有大量 RAM/磁盘空间的 Oracle VirtualBox,如果有帮助的话)。
我需要的基本上是,如果'This'这个词在第一行并且出现了7次,那么结果将是[('This', (0, 7)), ...]
【问题讨论】:
-
请勿在问题中发布图像或代码链接。请编辑您的问题以包含图片文本。
标签: python apache-spark pyspark rdd word-count