我的任务是在Python中创建一个wordcount程序。我应该从每个字母表开始数单词的数目。
这是我写的代码,但我似乎无法得到结果。有人能帮我排除故障吗?
in.txt内容:人们并不像他们看上去那么漂亮,他们走路或者说话的样子。他们只有爱的时候才有美,他们的共同关心也是如此。
import re
import sys
from pyspark import SparkConf, SparkContext
conf = SparkConf()
sc = SparkContext(conf=conf)
inRDD = sc.textFile("in.txt")
words = inRDD.flatMap(lambda l: re.split(" ",l))
LetterCount = words.map(lambda s : (s[0],1))
result = LetterCount.reduceByKey(lambda n1, n2 : n1 + n2)发布于 2019-01-21 17:13:52
你的代码没问题。只需在末尾添加collect:
result.collect()
[('s', 1),
('l', 2),
('a', 10),
('n', 1),
('t', 8),
('c', 1),
('p', 1),
('b', 2),
('w', 1),
('o', 2)]你可以代替
import re
words = inRDD.flatMap(lambda l: re.split(" ",l))使用
words = inRDD.flatMap(str.split)发布于 2019-10-12 10:52:10
使用函数的Apache PySpark最简单的方法的字计数程序
import pyspark.sql.functions as f
wordsDF = spark.read.text("path/log.txt")
df = wordsDF.withColumn('wordCount', f.size(f.split(f.col('value'), ' ')))
df.createOrReplaceTempView("wc")
df2 = spark.sql("SELECT SUM(wordCount) as Total FROM wc").show()
+-----+
|Total|
+-----+
| 147|
+-----+https://stackoverflow.com/questions/54293827
复制相似问题