我最近在ubuntu18lts上安装了一个单节点hadoop集群,还安装了pyspark(以及anaconda)。已验证安装正常。但是,我无法让pyspark处理hdfs中的文件。
hduser@master:~$ hdfs dfs -ls /user/local/hadoop_data/hdfs/hduser/
Found 1 items
-rw-r--r-- 1 hduser supergroup 1979173 2018-08-07 23:01 /user/local/hadoop_data/hdfs/hduser/test.data
在python代码中,我将hdfs文件引用为:
lines = sc.textFile("hdfs:///user/local/hadoop_data/hdfs/hduser/test.data")
脚本是:
hduser@master:~$ cat count_ratings.py
from pyspark import SparkConf, SparkContext
import collections
conf = SparkConf().setMaster("local").setAppName("RatingsHistogram")
sc = SparkContext(conf = conf)
lines = sc.textFile("hdfs:///user/local/hadoop_data/hdfs/hduser/test.data")
ratings = lines.map(lambda x: x.split()[2])
result = ratings.countByValue()
... ...
我执行脚本为:
hduser@master:~$ spark-submit count_ratings.py
不幸的是,我得到了一个错误:
2018-08-08 00:02:14 INFO SparkContext:54 - Created broadcast 0 from textFile at NativeMethodAccessorImpl.java:0
Traceback (most recent call last):
File "/home/hduser/count_ratings.py", line 9, in <module>
result = ratings.countByValue()
File "/usr/local/spark/python/lib/pyspark.zip/pyspark/rdd.py", line 1279, in countByValue
... ..
我很确定错误在于我在hdfs中引用文件时使用的语法,因为在本地(home dir)上引用相同的数据副本时,相同的脚本会成功运行。有人能指出用pyspark引用hdfs文件的语法吗?感谢您的帮助。。
谢谢。。
暂无答案!
目前还没有任何答案,快来回答吧!