Pyspark - сохранение и использование ранее рассчитанных значений - PullRequest
1 голос
/ 17 октября 2019

У меня есть набор данных из тысяч файлов, и я читаю / обрабатываю их с помощью 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 

Каждый день я получаю новые файлы и хочу обрабатывать только новые файлы и добавлять данные в первый созданный файл вместо того, чтобы снова обрабатывать весь набор данных с помощьюбольше данных каждый день, потому что это было бы слишком долго, и операции уже были сделаны.

Другое дело, здесь я делю на месяц, например (я рассчитываю количество в месяц), но никто не может гарантировать, чтоУ меня будет целый месяц (и, конечно, нет) в новых файлах. Поэтому я хочу сохранить счетчик или что-то, чтобы возобновить, где я был.

Я хотел знать, есть ли какой-нибудь способ сделать это или это вообще невозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...