Pyspark-保存和使用以前计算的值

时间:2019-10-17 12:45:23

标签: python apache-spark pyspark

我有成千上万个文件的数据集,并使用 PySpark 对其进行读取/处理。

首先,我创建了类似于以下函数的函数来处理整个数据集,并且效果很好。

def get_volume_spark(data):
    days = lambda i: i * 86400 # This is 60sec*60min*24h 

    partition = Window.partitionBy("name").orderBy(F.col("date").cast("long")).rangeBetween(days(-31), days(0))

    data = data.withColumn("monthly_volume", F.count(F.col("op_id")).over(partition))\
                .filter(F.col("monthly_volume") >= COUNT_THRESHOLD)

    return data 

每天我都会收到新文件,我只想处理新文件,然后将数据附加到第一个创建的文件中,而不是每天都用更多数据再次处理整个数据集,因为这样做也是如此很长时间,并且已经进行了操作。

另一件事是,例如,在这里我按月划分(我计算每月计数),但是没有人可以确保我在新文件中有整整一个月(当然没有)。因此,我想保留一个柜台或其他可以恢复原状的地方。

我想知道是否有某种方法可以做到这一点,或者根本不可能做到。

0 个答案:

没有答案