我試圖加載CSV文件到HDFS和讀取同進星火爲RDDS。我正在使用Hortonworks Sandbox並通過命令行嘗試這些。我加載的數據如下:問題讀取CSV文件中的星火
hadoop fs -put data.csv/
的數據似乎正確加載通過以下命令看到:
[[email protected] temp]# hadoop fs -ls /data.csv
-rw-r--r-- 1 hdfs hdfs 70085496 2015-10-04 14:17 /data.csv
在pyspark,我試着閱讀本文件,如下所示:
data = sc.textFile('/data.csv')
但是,下面的命令會引發一個錯誤:
data.take(5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/hdp/2.3.0.0-2557/spark/python/pyspark/rdd.py", line 1194, in take
totalParts = self._jrdd.partitions().size()
File "/usr/hdp/2.3.0.0-2557/spark/python/lib/py4j-0.8.2.1- src.zip/py4j/java_gateway.py", line 538, in __call__
File "/usr/hdp/2.3.0.0-2557/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/protocol.py", line 300, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o35.partitions.
: org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/data.csv
有人可以幫我解決這個錯誤嗎?
在我的情況下獲得的,我必須提供完整的HDFS路徑名稱爲data = sc.textFile('hdfs://sandbox.hortonworks.com:8020/data.csv')。只是hdfs:///沒有工作 – Ravi
你又得到了什麼錯誤?其實它的「//」在hdfs:之後。我輸入'「///」'意外並更正 – WoodChopper
這是我剛輸入hdfs:///文件「」,第1行,在 文件「/usr/hdp/2.3.0.0-2557/火花/蟒/ pyspark/rdd.py 「線1194,在取 totalParts = self._jrdd.partitions()。大小() 文件」 /usr/hdp/2.3.0.0-2557/spark/python/lib/ py4j-0.8.2.1-src.zip/py4j/java_gateway.py 「線路538,在__call__ 文件」 /usr/hdp/2.3.0.0-2557/spark/python/lib/py4j-0.8.2.1-src。 ZIP/py4j/protocol.py」,線路300,在get_return_value py4j.protocol.Py4JJavaError:同時呼籲o37.partitions發生錯誤。 :java.io.IOException異常:不完全HDFS URI,沒有主持人:HDFS:/data.csv –
Ravi