Apache spark 在循环中更新RDD
我正在使用dataframes/pyspark进行处理。我的数据帧包含几列和一个主键列,比如TXN_ID。这是我的伪代码-Apache spark 在循环中更新RDD,apache-spark,pyspark,spark-dataframe,pyspark-sql,Apache Spark,Pyspark,Spark Dataframe,Pyspark Sql,我正在使用dataframes/pyspark进行处理。我的数据帧包含几列和一个主键列,比如TXN_ID。这是我的伪代码- 从数据帧中已处理的数据读取TXN_ID并调用cache(),因为我们将在进一步处理中使用它。让我们将此数据帧称为observer\u txn\u id 从新传入的原始数据文件构建一个数据帧,并过滤过去已经处理过的TXN_id(我们有步骤1中的这些id,observer_TXN_id) 保存数据帧并使用当前处理文件中观察到的新ID更新observer_txn_ID 处理下一个
p.S observer_txn_id可以增加到数百万个值。Apache Spark不适合您问题中描述的这种情况。@eliasah感谢您的评论。您是否认为,与其将observer_txn_id保留为RDD并使用left_anti-join进行过滤,不如将其转换为python ID列表,并重写代码以使用map()过滤已处理的ID。在这种情况下,我想知道是否应该将它作为一个列表,让spark将它发送给闭包中的每个执行者,或者定义一个全局变量,并在每次更新时在循环中广播它?我不能说。但我可以补充如下:Spark不适合对其数据执行小更新。这不是一个数据库。此外,如果您的数据适合内存,请不要使用Spark。