чтение файла в 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
.