我的pyspark代码遇到问题。代码的目的是解码十六进制值并将其写入字段。代码在jupyter环境中运行得非常好。但是,当它作为spark.submit运行时,它完成得很好,但所需的字段为null(换句话说,没有解码(。
有人知道这样的问题吗?如果代码在Jupyter笔记本中运行良好,但你做了一个spark.submit,那么它就不起作用了。
感谢任何投入。
以下是在Jupyternotebook中正常工作的代码。代码正在遍历行并应用一个函数。
df = (df
.rdd
.map(lambda row: sql.Row(
**row.asDict(),
dec_spec=split_spec(row))
)
.toDF()
)
现在,当我通过spark.submit运行时,它会出现语法错误。请参阅下面的p请参阅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
问题是由于运行jupyter和spark.submit的python版本不同。
这些配置使得最初很难弄清楚。