我知道之前已经询问了同样的错误,但在this example和this other example中,错误是由pyspark.sql
中的udf
函数引起的。这不是我在做的事。
违规代码是以下函数定义(如果我删除默认参数,我的代码运行并通过所有测试)。
from pyspark.sql import functions as F
def apply_filter(df, group=F.lit(True)):
filtered_df = df.filter(group)
我主要是在查找此代码产生与其他示例中相同的错误的原因。
编辑:
由于工作原因我无法共享原始代码,但如果您使用spark-submit --deploy-mode cluster <filename>
运行上一代码,则会产生以下错误。
LogType:stdout
Log Upload Time:Fri Mar 09 16:01:45 +0000 2018
LogLength:343
Log Contents:
Traceback (most recent call last):
File "temp.py", line 3, in <module>
def apply_filter(df, group=F.lit(True)):
File "/mnt/yarn/usercache/hadoop/appcache/application_1520603520946_0005/container_1520603520946_0005_01_000001/pyspark.zip/pyspark/sql/functions.py", line 40, in _
AttributeError: 'NoneType' object has no attribute '_jvm'
End of LogType:stdout
有趣的是,如果它在本地运行,则错误不会持续存在。
答案 0 :(得分:0)
无法实例化spark上下文时发生此错误。当你在var value = event.snapshot.value.keys;
中使用pyspark sql函数时,你试图在其中实例化一个不允许的spark上下文。
为什么火花上下文无法实例化可能有几个原因