我试过
我也是Spark的新手,我想知道是否有任何方法可以做到比全局变量更好的方法?或者,如果Spark提供的假设方式我已经失踪了?我共享的数据是每个RDD中样本的单独缓冲区,因为我正在提供样本的快速傅里叶变换算法需要特定的样本数,因此我将缓冲样本,直到缓冲区大小达到此特定计数。任何见解和建议都深表赞赏!!
我的代码示例:
limit = 64
buffer=[]
def processSamples(rdd):
global limit
global buffer
lines = rdd.collect()
for (k,v) in lines:
if len(buffer) == limit:
FFT(buffer)
del buffer[:]
buffer.append(v)
if __name__ == "__main__":
sc = SparkContext()
ssc = StreamingContext(sc, 2)
topic = "topic1"
ks = KafkaUtils.createDirectStream(ssc, [topic], {"bootstrap.servers": "kafka:9092"})
ks.foreachRDD(processSamples)
ssc.start()
ssc.awaitTermination()