繁体   English   中英

使用 Apache Spark 和 python 运行简单的字数统计程序

[英]Run simple word count program using Apache Spark with python

我创建了一个具有三台机器的 Apache Spark 集群(使用 Hadoop 分发的预构建),两台用作计算节点,一台用作主节点和计算节点。 我已经安装了所有必需的软件,如 Apache Hadoop、JAVA 8、Scala。

现在我想在我的集群上运行一个简单的字数统计程序。 我复制了https://github.com/apache/spark/blob/master/examples/src/main/python/wordcount.py 上可用的程序并将其保存在 spark_wc.py 中。

我正在运行这个脚本,参数作为文件名,它已经存储在 Hadoop HDFS 上,它给出了错误

python spark_wc.py file.txt
2018-09-10 12:12:56 WARN  NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN"
Traceback (most recent call last):
File "spark_wc.py", line 19, in <module>
lines = spark.read.text(sys.argv[1]).rdd.map(lambda r: r[0]) 
File "/usr/lib/python2.7/site-packages/pyspark/sql/readwriter.py", line 328, in text
return self._df(self._jreader.text(self._spark._sc._jvm.PythonUtils.toSeq(paths)))
 File "/usr/lib/python2.7/site-packages/py4j/java_gateway.py", line 1257, in __call__
     answer, self.gateway_client, self.target_id, self.name)
  File "/usr/lib/python2.7/site-packages/pyspark/sql/utils.py", line 69, in deco
    raise AnalysisException(s.split(': ', 1)[1], stackTrace)
 pyspark.sql.utils.AnalysisException: u'Path does not exist: hdfs://master:9000/user/ncra/file.txt;'
from pyspark import SparkContext
from pyspark import SparkConf
from pyspark.sql import Row

sc = SparkContext(conf=conf)
RddDataSet = sc.textFile("word_count.dat");
words = RddDataSet.flatMap(lambda x: x.split(" "))
result = words.map(lambda x: (x,1)).reduceByKey(lambda x,y: x+y)
result = result.collect()
for word in result:
    print("%s: %s" %(word[0], word[1]))

通过查看错误,似乎路径不存在。

我怀疑您已将文件保存在本地文件系统中。 如果是这样,请尝试附加如下路径

文件:/你的路径/文件名.csv

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM