Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.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 如何使PySpark进程成为hdfs文件_Python_Ubuntu_Hadoop_Pyspark_Hdfs - Fatal编程技术网

Python 如何使PySpark进程成为hdfs文件

Python 如何使PySpark进程成为hdfs文件,python,ubuntu,hadoop,pyspark,hdfs,Python,Ubuntu,Hadoop,Pyspark,Hdfs,我最近在Ubuntu18-LTS上安装了一个单节点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/h

我最近在Ubuntu18-LTS上安装了一个单节点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
... ..
2018-08-08 00:02:14信息SparkContext:54-从NativeMethodAccessorImpl.java:0的文本文件创建广播0
回溯(最近一次呼叫最后一次):
文件“/home/hduser/count_ratings.py”,第9行,在
结果=评级。countByValue()
文件“/usr/local/spark/python/lib/pyspark.zip/pyspark/rdd.py”,第1279行,countByValue格式
... ..
我相当肯定错误在于我在hdfs中引用文件时使用的语法,因为在本地(home dir)上引用相同的数据副本时,相同的脚本会成功运行。任何人都可以指出使用pySpark引用hdfs文件的语法吗?谢谢你的帮助


谢谢..

您为hdfs配置了什么?首先,
INFO
消息不是错误。。。第二,这是一个非常奇怪的HDFS路径<代码>/user/local/hadoop\u data/hdfs/hduser。。。你为什么不上传到
hdfs:///user/hduser/
直接?您是否尝试过
pyspark
REPL?我得到的错误是连接被拒绝错误:
Traceback(最近一次调用):文件“/home/hduser/count_ratings.py”,第10行,在result=ratings.countByValue()中:java.net.ConnectException:从master/XXX.XXX.X.X调用localhost:9000失败,连接异常:java.net.ConnectException:连接被拒绝;有关更多详细信息,请参阅:http://wiki.apache.org/hadoop/ConnectionRefused
。此外,当我尝试检查相同的错误时,它会给出相同的错误:-
$telnet localhost Trying::1。。。正在尝试127.0.0.1。。。telnet:无法连接到远程主机:连接被拒绝