如何在pyspark中跨火花流共享变量。
我正在尝试共享一个数据名称,该数据名称包含各种功能的值,例如示例平台等。
首次初始化全局变量时,程序可以运行一次。然后在下一个循环中再次通过spark访问全局变量时崩溃。
这是我的部分代码
..initialize
globalDataFrame = None
sqlCountsDataFrame = None
stream = StreamingContext(sc, 30) # 30 second window
..connect to stream
..get data from stream
def process(time, rdd):
global globalDataFrame
spark = sqlContext
..process rdd in to rowRdd
sqlDataFrame = spark.createDataFrame(rowrdd)
sqlCountsDataFrame = spark.sql(...)
if globalDataFrame != None:
globalDataFrame=xyz.unionAll(sqlCountsDataFrame)
if globalDataFrame == None:
print "initializing globaldataframe"
globalDataFrame = sqlCountsDataFrame
print globalDataFrame.count()
parsed_data.foreachRDD(process)
stream.start()