首页 > 解决方案 > 通过 Spark.submit 但不是 Jupyter-notebook 运行 pyspark 代码的问题

问题描述

我的 pyspark 代码遇到问题。代码的目的是解码十六进制值并将其写入字段。代码在 jupyter 环境中运行良好。但是当它作为 spark.submit 运行时,它完成得很好,但所需的字段是空值(换句话说,没有解码)。

有人知道这样的问题吗?代码在 Jupyter 笔记本中完美运行的地方,但是你做了 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

标签: apache-sparkpysparkapache-spark-sqljupyter-notebook

解决方案


问题是由于运行 jupyter 和 spark.submit 的不同版本的 python 造成的。

这些配置使最初很难弄清楚。


推荐阅读