Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 修改Spark读取的文本文件_Python_Apache Spark_Pyspark - Fatal编程技术网

Python 修改Spark读取的文本文件

Python 修改Spark读取的文本文件,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,在使用Spark时,我试图在Hadoop集群中的几个文本文件中计算单词数。我设法获得字数,但我还想做一些进一步的修改,如忽略数字或将所有单词转换为小写。我不能正常地迭代RDD数据。我尝试过使用collect(),但map函数不接受list作为参数。我还尝试将regex逻辑直接应用于RDD的“filter”函数,但没有成功。这是我到目前为止编写的代码,它在没有我注释掉的部分的情况下工作 from pyspark import SparkConf, SparkContext import re co

在使用Spark时,我试图在Hadoop集群中的几个文本文件中计算单词数。我设法获得字数,但我还想做一些进一步的修改,如忽略数字或将所有单词转换为小写。我不能正常地迭代RDD数据。我尝试过使用collect(),但map函数不接受list作为参数。我还尝试将regex逻辑直接应用于RDD的“filter”函数,但没有成功。这是我到目前为止编写的代码,它在没有我注释掉的部分的情况下工作

from pyspark import SparkConf, SparkContext
import re
conf = SparkConf().setAppName("Word count")
sc = SparkContext(conf=conf)
sc.setLogLevel("WARN")
text = sc.textFile("/data/book/*.txt") \
       .flatMap(lambda line: line.split())

#handledText = text.map(lambda s: s.replace("\d", "", text))
counts = text.map(lambda word: (word, 1)) \
         .groupByKey() \
         .map(lambda p: (p[0], sum(p[1])))
res = counts.takeOrdered(text.count(), key=lambda p: -p[1])
print(res)
text.map(lambda s:s.replace(“\d”,”,text))

您将Python中的内置函数
map()
与Spark的
DataFrame.map()
混淆了。。。否,
文本
参数在此处无效

试试这个

def lower_no_digit(word):
    return lower(word.replace(r'\d+', ''))

counts = text.map(lower_no_digit) \ 
             .filter(lambda w : len(w) > 0) \
             .map(lambda word: (word, 1)) \
在应用
(word,1)

旁白-在SparkSQL中执行同样的操作比较简单,不需要手动放置
(word,1)

我已经试过使用collect()了

不要
映射(lambda x:…,df.collect())
。这将把所有数据都带到本地Spark驱动程序,并破坏了运行分布式处理框架的目的