#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