在火花流中共享变量

时间:2016-10-26 22:19:44

标签: apache-spark spark-streaming

如何在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()

0 个答案:

没有答案