Путь ввода не существует в pyspark для пути hadoop

#visual-studio #pyspark #hadoop2

#visual-studio #pyspark #hadoop2

Вопрос:

Я пытаюсь получить файл из hdfs в pyspark, используя код Visual Studio…

  1. я проверил через jps, что все узлы находятся только в активном состоянии.
  2. мой путь к файлу в hadoop — это hadoop fs -cat emp /part-m-00000

    1, A, ABC 2, B, ABC 3, C, ABC

  3. и core-site.xml является fs.default.name hdfs://localhost: 9000

  4. я извлекаю вышеупомянутый файл с помощью кода Visual Studio в pyspark..

но я получаю ошибку типа

py4j.protocol.Py4JJavaError: произошла ошибка при вызове o31.partitions. : org.apache.hadoop.mapred.Исключение InvalidInputException: путь ввода не существует: hdfs://localhost: 9000/emp/part-m-00000

пожалуйста, помогите мне

я попытался указать путь hadoop

 from pyspark.conf import SparkConf
from pyspark.context import SparkContext
from pyspark.sql import HiveContext
sc= SparkContext('local','example')
hc = HiveContext(sc)
tf1 = sc.textFile("hdfs://localhost:9000/emp/part-m-00000")
print(tf1.first())
  

мне нужно получить файл из hadoop

Комментарии:

1. emp/part-m-00000 это относительный путь, попробуйте найти его абсолютный путь, например: hdfs://localhost:9000/user/...../emp/part-m-00000

2. как найти путь absoulte, не могли бы вы помочь мне в этом

3. просто добавьте свою домашнюю папку HDFS, обычно /user/<username> <имя пользователя> настраивается либо вашей оболочкой env $HADOOP_USER_NAME , либо вашим пользователем оболочки входа. вы можете проверить hdfs dfs -ls /user и посмотреть, сможете ли вы найти там свое имя, а затем использовать hdfs://localhost:9000/user/<username>/emp/part-m-00000 для доступа к этому файлу.

4. о .. Спасибо, я могу получить доступ к HDFS, как вы сказали.