#apache-spark #pyspark #apache-spark-sql #jupyter-notebook
#apache-spark #pyspark #apache-spark-sql #jupyter-notebook
Вопрос:
Я столкнулся с проблемой с моим кодом pyspark. цель кода — декодировать шестнадцатеричные значения и записать их в поле. код отлично работает в среде jupyter. но когда он запускается как spark.submit, он завершается нормально, но требуемое поле равно нулю (другими словами, без декодирования).
Кто-нибудь знает о подобной проблеме? если код отлично работает в Jupyter notebook, но вы выполняете spark.submit , тогда он не будет работать.
Приветствуются любые входные данные.
Ниже приведен код, который правильно работает в Jupyternotebook. код перебирает строки и применяет функцию.
df = (df
.rdd
.map(lambda row: sql.Row(
**row.asDict(),
dec_spec=split_spec(row))
)
.toDF()
)
Теперь, когда я запускаю через spark.submit, он выдает синтаксическую ошибку. пожалуйста, смотрите ниже Пожалуйста, посмотрите знак курсора в запятой после asDict
> df=df.rdd.map(lambda row:sql.Row(**row.asDict(),dec_spec=split_spec(row))).toDF()
^
> SyntaxError: invalid syntax
> 20/12/16 09:59:56 INFO ShutdownHookManager: Shutdown hook called
Комментарии:
1. версия python для jupyter и pyspark?
2. Это версия pyspark
3. каково значение переменной PYSPARK_PYTHON
4. как это выяснить? Как вы думаете, это как-то связано с этим. Насколько я знаю, между ними нет разницы в версиях, поскольку как jupyter notebook, так и spark.submit выполняются в одном кластере
Ответ №1:
Проблема была связана с другой версией python, на которой были запущены jupyter и spark.submit.
Конфигурации затрудняли первоначальное понимание.