чтение файла в hdfs из pyspark

Я пытаюсь прочитать файл в моем hdfs. Вот показ моей файловой структуры hadoop.

hduser@GVM:/usr/local/spark/bin$ hadoop fs -ls -R /
drwxr-xr-x   - hduser supergroup          0 2016-03-06 17:28 /inputFiles
drwxr-xr-x   - hduser supergroup          0 2016-03-06 17:31 /inputFiles/CountOfMonteCristo
-rw-r--r--   1 hduser supergroup    2685300 2016-03-06 17:31 /inputFiles/CountOfMonteCristo/BookText.txt

вот мой код pyspark:

from pyspark import SparkContext, SparkConf

conf = SparkConf().setAppName("myFirstApp").setMaster("local")
sc = SparkContext(conf=conf)

textFile = sc.textFile("hdfs://inputFiles/CountOfMonteCristo/BookText.txt")
textFile.first()

ошибка, которую я получаю:

Py4JJavaError: An error occurred while calling o64.partitions.
: java.lang.IllegalArgumentException: java.net.UnknownHostException: inputFiles

это потому, что я неправильно устанавливаю свой sparkContext? Я запускаю это в виртуальной машине ubuntu 14.04 через виртуальную коробку.

Я не уверен, что я делаю неправильно здесь....

2 ответов


вы можете получить доступ к файлам hdfs через полный путь, если конфигурация не указана.(namenodehost, если ваш localhost, если hdfs находится в локальной среде).

hdfs://namenodehost/inputFiles/CountOfMonteCristo/BookText.txt

поскольку вы не предоставляете полномочия, URI должен выглядеть так:

hdfs:///inputFiles/CountOfMonteCristo/BookText.txt

иначе inputFiles интерпретируется как имя хоста. При правильной конфигурации вам вообще не понадобится схема использования:

/inputFiles/CountOfMonteCristo/BookText.txt
.