Size: a a a

2021 October 15

I

Ivan Burmachev in Data Engineers
А можно более развёрнуто?
источник

GP

Grigory Pomadchin in Data Engineers
3060ti больше похоже на rtx2080super
источник

GP

Grigory Pomadchin in Data Engineers
гуглани небось были такие запросы; GTX 1080ti vs RTX 3060 ключевые слова
источник

I

Ivan Burmachev in Data Engineers
Да, что-то я затупил. Спасибо
источник
2021 October 16

MP

Maks Polow in Data Engineers
Фэйк
источник

Е

Евгений in Data Engineers
Привет, а кто-нибудь видел Docker образ c PySpark, в котором не надо танцевать с бубном, настраивая SPARK_HOME и тд? Чтобы просто выполнить 'python app.py', в котором спарк сессия что-то считает.
источник

A

Alexander in Data Engineers
источник

ЕГ

Евгений Глотов... in Data Engineers
Так в этом app.py и настроишь спарк-хоум😆
источник

Е

Евгений in Data Engineers
короче проблема странная
все настроено и SPARK_HOME подхватывается правильно (из /app/spark-3.0.3-bin-hadoop2.7/)
но на строке spark = SparkSession.builder.getOrCreate()
падает, вот текст ошибки
spark = SparkSession.builder.getOrCreate()
 File "/app/spark-3.0.3-bin-hadoop2.7/python/pyspark/sql/session.py", line 186, in getOrCreate
   sc = SparkContext.getOrCreate(sparkConf)
 File "/app/spark-3.0.3-bin-hadoop2.7/python/pyspark/context.py", line 378, in getOrCreate
   SparkContext(conf=conf or SparkConf())
 File "/app/spark-3.0.3-bin-hadoop2.7/python/pyspark/context.py", line 133, in __init__
   SparkContext._ensure_initialized(self, gateway=gateway, conf=conf)
 File "/app/spark-3.0.3-bin-hadoop2.7/python/pyspark/context.py", line 327, in _ensure_initialized
   SparkContext._gateway = gateway or launch_gateway(conf)
 File "/app/spark-3.0.3-bin-hadoop2.7/python/pyspark/java_gateway.py", line 95, in launch_gateway
   proc = Popen(command, **popen_kwargs)
 File "/opt/conda/lib/python3.9/subprocess.py", line 951, in __init__
   self._execute_child(args, executable, preexec_fn, close_fds,
 File "/opt/conda/lib/python3.9/subprocess.py", line 1821, in _execute_child
   raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'spark-3.0.3-bin-hadoop2.7/./bin/spark-submit'

мне непонятно
1) почему на строке proc = Popen(command, **popen_kwargs) идет обращение к другому питону, который не в папке со спарком
2) тот путь к файлу 'spark-3.0.3-bin-hadoop2.7/./bin/spark-submit', на который он ругается, формируется так:
script = "./bin/spark-submit"
command = [os.path.join(SPARK_HOME, script)]

и он точно есть, странно что питон из п.1 его не видит
источник

ЕГ

Евгений Глотов... in Data Engineers
Сделай print(os.environ["SPARK_HOME"])
источник

Е

Евгений in Data Engineers
print(os.getenv('SPARK_HOME'))
/app/spark-3.0.3-bin-hadoop2.7
источник

ЕГ

Евгений Глотов... in Data Engineers
А, у тебя вообще отдельная переменная, не надо так, сделай переменную окружения
источник

ЕГ

Евгений Глотов... in Data Engineers
У тебя SPARK_HOME - переменная, а не env var
источник

Е

Евгений in Data Engineers
в Dockerfile я ее задаю так
ENV SPARK_HOME=/app/spark-3.0.3-bin-hadoop2.7
это неправильно?
источник

Е

Евгений in Data Engineers
print(os.environ["SPARK_HOME"])
тоже выводит /app/spark-3.0.3-bin-hadoop2.7
то есть SPARK_HOME задан правильно, да и в первой строчке ошибки видно что сессия хочет запуститься из правильного пути
источник

ЕГ

Евгений Глотов... in Data Engineers
Вот поменяй переменную в питоне на
script = "./bin/spark-submit"
command = [os.path.join(os.getenv("SPARK_HOME"), script)]
источник

Е

Евгений in Data Engineers
то есть править код спарка? Эта строка в файле
https://github.com/apache/spark/blob/master/python/pyspark/java_gateway.py#L64
источник

Е

Евгений in Data Engineers
поправил, не помогло
да и не в этом проблема
почему во время исполнения строки
   proc = Popen(command, **popen_kwargs)
идет обращение к subprocess из другого питона, а не из спарковского
 File "/opt/conda/lib/python3.9/subprocess.py", line 951, in init
?
источник

ЕГ

Евгений Глотов... in Data Engineers
Что значит спарковский питон?
источник

ЕГ

Евгений Глотов... in Data Engineers
Спарк работает с тем питоном, из-под которого ты сессию запускаешь
источник