我需要一点帮助。我想看到每个元素的rdd(rddseparar)的想法是计算的话,一个文本,消除特殊字符,这是其中一个de步骤得到它
import re
fileName = "/databricks-datasets/cs100/lab1/data-001/shakespeare.txt"
rdd = sc.textFile(fileName)
separar = re.split(r"[^A-Za-z\s\d]", rdd.collect()[0])
separarPalabras = [word for frase in separar for word in frase.split()]
rddseparar = sc.parallelize(separarPalabras)
print(rddseparar.collect())
字符串
当我运行代码时,我应该能够看到rddseparate中的每个元素,但我没有。
Spark代码执行输出
为什么我看不到rddseparar的元素?
(2)Spark Jobs ['1609']
2条答案
按热度按时间7xllpg7q1#
输出是正确的,但它只返回一行:['1609']。这是因为您只输入了一行:rdd.collect()[0])。如果要将正则表达式应用于每一行,可以在collect输出中使用循环,或者使用pyspark functions/udf进行更多的spark-route
6g8kf2rb2#
您没有使用spark功能来计算字数。你只是从rdd中获取第n行的值,并将其作为参数传递给另一个函数。
所以你使用RDD作为一个数据结构(数组或列表等)
您可以使用spark转换和动作直接计算字数,而不是用这种方式。
字符串
我已经推杆了”;“作为一个例子,但你可以在这里开发添加字符列表