问题描述
我创建了一个具有检查点和广播变量的pyspark流。第一次启动成功,但是当我希望它从检查点恢复时,出现了问题:
Caused by: org.apache.spark.SparkException: An exception was raised by Python:
Traceback (most recent call last):
File "/usr/local/python3/lib/python3.5/site-packages/pyspark/streaming/util.py",line 123,in loads
f,wrap_func,deserializers = self.serializer.loads(bytes(data))
File "/usr/local/python3/lib/python3.5/site-packages/pyspark/serializers.py",line 580,in loads
return pickle.loads(obj,encoding=encoding)
File "/usr/local/python3/lib/python3.5/site-packages/pyspark/broadcast.py",line 46,in _from_id
raise Exception("broadcast variable '%s' not loaded!" % bid)
Exception: broadcast variable '1' not loaded!
官方中说,您必须创建延迟实例化的单例实例,然后我创建一个方法:
def get_broadcast_tables(self,table: str):
if table not in globals():
globals()[table] = self.sc.broadcast(table)
return globals()[table]
我将其与bc = self.get_broadcast_tables("my_table")
一起使用,但仍然出错,我该如何处理?
我的spark版本是2.4.3,而python版本是3.5。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)