Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何将每个Spark流式迭代数据存储到一个RDD?_Apache Spark_Pyspark_Apache Kafka_Spark Streaming_Rdd - Fatal编程技术网

Apache spark 如何将每个Spark流式迭代数据存储到一个RDD?

Apache spark 如何将每个Spark流式迭代数据存储到一个RDD?,apache-spark,pyspark,apache-kafka,spark-streaming,rdd,Apache Spark,Pyspark,Apache Kafka,Spark Streaming,Rdd,我是新手。 我正在编写以下脚本,该脚本接收来自Kafka的流,然后将其转换为RDD 我的目标是将每个流迭代中的数据存储到内存中的一个RDD中。就像在每个循环的列表中添加一个元素一样 conf = SparkConf().setAppName("Application") sc = SparkContext(conf=conf) def joinRDDs(rdd): elements = rdd.collect() rdds = sc.parallelize(elements

我是新手。 我正在编写以下脚本,该脚本接收来自Kafka的流,然后将其转换为RDD

我的目标是将每个流迭代中的数据存储到内存中的一个RDD中。就像在每个循环的列表中添加一个元素一样

conf = SparkConf().setAppName("Application")
sc = SparkContext(conf=conf)

def joinRDDs(rdd):
     elements = rdd.collect()
     rdds = sc.parallelize(elements)
     transformed = rdds.map(lambda x: ('key', {u'name': x[1]}))

if __name__ == '__main__':
    ssc = StreamingContext(sc, 2)
    stream = KafkaUtils.createDirectStream(ssc, [topic],{"metadata.broker.list": host})
    stream.foreachRDD(joinRDDs)
我怎样才能做到这一点

感谢您的关注

使用updateStatebyKey()并根据需要传入函数。函数包含两个参数:每批中的新数据以及内存中保存的历史数据

def CountPurchases(新值、上次总和): 如果lastSum为无: lastSum=0 返回和(newValues,lastSum)

UpdateStateByKey(CountPurchases)