2015-10-04 4 views
1

Я пытаюсь загрузить CSV-файл в HDFS и читать то же самое в Spark как RDD. Я использую Hortonworks Sandbox и пробую их через командную строку. Я загрузил данные следующим образом: по-видимому, загружена, как показано с помощью следующей командыОшибка чтения CSV-файла в Spark

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 

Может кто-нибудь помочь мне с этой ошибкой?

ответ

2

Я понял ответ из. Я должен был ввести полный путь к файлу HDFS следующим образом:

data = sc.textFile('hdfs://sandbox.hortonworks.com:8020/data.csv') 

Полный путь получаются из Conf/ядер-site.xml

0

Ошибка org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:/data.csv

Он читает от вас локальной файловой системы вместо HDFS.

Try обеспечивая путь к файлу, как показано ниже,

data = sc.textFile("hdfs://data.csv") 
+0

В моем случае, я должен был обеспечить полную HDFS имя пути как data = sc.textFile ('hdfs: //sandbox.hortonworks.com: 8020/data.csv'). Просто hdfs: /// не работает – Ravi

+0

Какая ошибка вы получаете снова? На самом деле его «//» после hdfs :. Я набрал «///» «случайно и исправлен» – WoodChopper

+0

Это ошибка, когда я только что ввел hdfs: /// Файл «», строка 1, в Файл «/usr/hdp/2.3.0.0-2557/ spark/python/pyspark/rdd.py ", строка 1194, в строке totalParts = self._jrdd.partitions(). size() Файл" /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: Неполный URI HDFS, нет хоста: hdfs: /data.csv – Ravi