Система не может найти указанный маршрут при создании SparkSession с PySpark - PullRequest
4 голосов
/ 01 марта 2020

Я пытаюсь изучить Spark вместе с Python на виртуальной машине Win10. Для этого я пытаюсь прочитать данные из файла CSV с помощью PySpark, но останавливается на следующем:

enter image description here

C: \ Users \ israel \ AppData \ Local \ Programs \ Python \ Python37 \ python .exe C: / Users / Israel / Desktop / airbnb_python / src / main / python / spark_python / airbnb.py

hello world1

Система не может найти указанный маршрут

Я прочитал Как связать PyCharm с PySpark? , PySpark, Win10 - The система не может найти указанный путь , Системе не удается найти указанный путь, ошибка при запуске pyspark , PySpark - системе не удается найти указанный путь , но она не смогла реализовать решения.

Я использую IntelliJ, python 3.7. Это конфигурация запуска.

enter image description here

enter image description here

enter image description here

Я использую IntelliJ, python 3.7. Код выглядит следующим образом:

from pyspark.sql import SparkSession
from pyspark.sql import Row
from pyspark.sql.types import *


if __name__ == "__main__":

    print("hello world1")

    spark = SparkSession \
        .builder \
        .appName("spark_python") \
        .master("local") \
        .getOrCreate()

    print("hello world2")

    path = "C:\\Users\\israel\\Desktop\\data\\listings.csv"

    df = spark.read\
        .format("csv")\
        .option("header", "true")\
        .option("inferSchema", "true")\
        .load(path)

    df.show()

    spark.stop()

Кажется, что ошибка в SparkSession, но я не вижу, как объявленная ошибка связана с этой строкой. Стоит отметить, что выполнение никогда не заканчивается, я должен вручную остановить выполнение, чтобы повторно запустить его. Кто-нибудь может подсказать мне, что я делаю не так? Пожалуйста

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Если сообщение об ошибке написано с sys.stderr

Ответы, которые я здесь привожу, не для реальных вопросов,

, но я заметил, что вы сказали: но я не вижу, как объявленная ошибка связана с этой строкой ...

Поэтому я хочу предоставить вам отладку, чтобы найти местоположение кода, который сгенерировал это сообщение.

Согласно изображению вашего airhnb (первого), сообщение об ошибке El sistema no puede encontrar la ruta especificada. Похоже, что это было написано sys.stderr

Так что мой метод заключается в перенаправлении sys.stderr, как показано ниже:

import sys


def the_process():
    ...
    sys.stderr.write('error message')


class RedirectStdErr:
    def write(self, msg: str):
        if msg == 'error message':
            set_debug_point_at_here = 1
        original.write(msg)
        original.flush()


original = sys.stderr
sys.stderr = RedirectStdErr()

the_process()

enter image description here

Пока вы устанавливаете точку останова на set_debug_point_at_here = 1, вы можете знать, где находится реальное место для вызова этого кода.

0 голосов
/ 15 апреля 2020

Я уверен, что это не лучшее решение, но одним из подходов будет запуск вашего интерпретатора python непосредственно из двоичного файла pyspark.

Это может быть расположено в: $ SPARK_HOME \ bin \ pyspark

Кроме того, если вы изменяете переменные среды, когда какие-либо терминалы активны, переменные не обновляются до следующего запуска. Это относится и к Pycharm тоже. Если вы еще не пробовали, перезапуск pycharm также может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...