У меня есть набор данных из тысяч файлов, и я читаю / обрабатываю их с помощью 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
Каждый день я получаю новые файлы и хочу обрабатывать только новые файлы и добавлять данные в первый созданный файл вместо того, чтобы снова обрабатывать весь набор данных с помощьюбольше данных каждый день, потому что это было бы слишком долго, и операции уже были сделаны.
Другое дело, здесь я делю на месяц, например (я рассчитываю количество в месяц), но никто не может гарантировать, чтоУ меня будет целый месяц (и, конечно, нет) в новых файлах. Поэтому я хочу сохранить счетчик или что-то, чтобы возобновить, где я был.
Я хотел знать, есть ли какой-нибудь способ сделать это или это вообще невозможно.