Как настроить файловую систему Hadoop и файлы с помощью pyspark?

#python #hadoop #pyspark

Вопрос:

Я относительно новичок в Apache Pyspark, изучаю pyspark для своего проекта. Я настроил pyspark на своей машине с Windows, и теперь pyspark работает нормально. Тем не менее, я практикую ETL с pyspark, для чего мне сначала нужна файловая система hadoop и настройка файлов. Я следовал этому учебнику на github, чтобы практиковать ETL.

Поэтому, когда я попытался скопировать код из приведенного выше руководства, для настройки файловой системы hadoop и файлы не работают. Вместо этого у меня была эта ошибка:

Py4JJavaError: Произошла ошибка при вызове o89.csv. : java.net.ConnectException: Вызов из CPX-OHY3P55R3Q3/192.168.0.8 на локальный хост:19000 сбой при подключении исключение: java.net.ConnectException: Отказано в подключении: нет дополнительной информации

Я не знаю, что вызвало эту ошибку. Код, который я пробовал:

 # setting up hadoop filesystem and files.
datasetDir= "hdfs://localhost:19000/"

# first load all csv files from HiggsTwitter dataset from http://snap.stanford.edu/data/higgs-twitter.html
file=datasetDir "HiggsTwitter/higgs-social_network.edgelist.gz"
# then, specify dataframe schema
schema=StructType([StructField("follower", IntegerType()), StructField("followed", IntegerType())])

# then, create dataframe with previous variables
socialDF=spark.read.csv(path=file, sep=" ", schema=schema)
 

до сих пор моя конфигурация pyspark работает нормально, не уверен, что мне нужно правильно настроить hadoop. Это переменные среды, которые я настроил на своей машине с Windows:

 hadoop_home: C:sparkspark-3.1.2-bin-hadoop2.7hadoop
JAVA_HOME: C:Program FilesJavajdk1.8.0_301
Spark_home: C:sparkspark-3.1.2-bin-hadoop2.7
 

Я подозреваю, что сначала мне нужно правильно настроить hadoop, если я хочу настроить параметры файловой системы hadoop. Моя цель-воспроизвести код, описанный в этом учебном пособии на github. Я не совсем уверен, что пошло не так с моей обстановкой здесь. Кто-нибудь может указать мне, как это сделать? есть какие-нибудь мысли?

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

1. Забудь об искре на минуту. Можете ли вы hadoop fs нормально выполнять команды без какой-либо дополнительной конфигурации интерфейса командной строки? Если это так, вы не должны использовать host:port в своем коде, а вместо этого можете использовать напрямую hdfs:///path/to/file . Адрес будет извлечен из HADOOP_CONF_DIR/core-site.xml