Я использую ConfigParser для чтения значений ключей, которые передаются моей программе pyspark. Код работает нормально, когда я выполняю с краевого узла кластера hadoop, с файлом конфигурации в локальном каталоге краевого узла. Это не так, если файл конфигурации загружен в путь hdfs, и я пытаюсь получить доступ к нему с помощью парсера.
Файл конфигурации para.conf имеет содержимое ниже
[tracker]
port=9801
В режиме локального клиента, с para.conf в локальном каталоге, для доступа к значениям, которые я использую ниже.
from ConfigParser import SafeConfigParser
parser = SafeConfigParser()
parser.read("para.conf")
myport = parser.get('tracker', 'port')
Выше работает отлично ...
В кластере Hadoop:
Загруженный файл para.conf в путь к каталогу hdfs bdc / para.conf
parser.read("hdfs://clusternamenode:8020/bdc/para.conf")
это ничего не возвращает, как и нижеследующее, избегая ..
parser.read("hdfs:///clusternamenode:8020//bdc//para.conf")
Хотя с помощью sqlCOntext я могу прочитать этот файл, который возвращает действительный rdd.
sc.textFile("hdfs://clusternamenode:8020/bdc/para.conf")
хотя я не уверен, что использование configParser может извлечь значения ключей из этого ..
Может кто-нибудь посоветовать, можно ли использовать configParser для чтения файлов из hdfs? Или есть альтернатива?