РГ
Подскажите, пожалуйста
Имею docker-compose в котором есть jupyter, на базе этого образа и спарк на основе этого
Запускаю ноутбук в jupyter, проверяю работу
import findspark
findspark.init()
import pyspark
sc = pyspark.SparkContext(master = "spark://spark-master:7077", appName='test')
Вижу в Spark UI, что появилось Running Application, все ок
Дальше запускаю простейший тест
import random
def inside(p):
x, y = random.random(), random.random()
return xx + yy < 1
count = sc.parallelize(range(0, 1000000)).filter(inside).count()
print("Pi is roughly %f" % (4.0 * count / 1000000))
И все это падает с ожидаемой ошибкой
java.io.IOException: Cannot run program "/opt/conda/bin/python": error=2, No such file or directory
То есть в жюпитере стоит конда, а в самом спарке она не установлена
Пробовал добавить конду в имадж спарка, свалилось выполнение теста выше совсем с какой-то бредовой ошибкой типа
xx is not defined
Как бы полечить? Собрать жюпитер с питоном, как в спарке?
Но там как-то тоже для меня не очевидно все работает
Питон в спарке
-> which python
/opt/bitnami/python/bin/python
-> python --version
Python 3.6.12
Староват, но это ладно. Важнее что путь до самого питона не стандартный, что явно вызовет проблемы
Периодически нагугливается что-то про env'ы, в которых можно поменять версию питона в спарке, но пока не разобрался
Подскажите, как полечить?
По итогу хочется иметь отдельный кластер спарка и отдельный сервис жюпитера, из которого к кластеру можно подключаться и запускать примерно такие же расчеты, как в тесте выше.