Использование Cronjob для изменения окна данных (на MAC) - PullRequest
1 голос
/ 25 апреля 2019

У меня есть код Python (на ноутбуке Jupiter), который выполняет несколько SQL-запросов и обновляет существующую таблицу в Vertica, вставляя данные за данную неделю. Скажем, каждый понедельник я запускаю данные за последнюю неделю, и каждый раз, когда ставлю их вручную, например:

first_date = "'2019-04-15'"
last_date =  "'2019-04-21'"

Есть ли способ сделать это автоматически? Как я понимаю, я могу использовать cron для запуска файла с заданной частотой, но он будет каждый раз запускать одну и ту же дату окна ... У вас есть какие-либо идеи о том, как это можно сделать? Спасибо!

1 Ответ

1 голос
/ 25 апреля 2019

Если вы всегда запускаете его в понедельник, вы можете использовать следующий скрипт:

import pandas as pd
startdate = (pd.to_datetime('today') + pd.DateOffset(days=-7)).strftime("%Y-%m-%d")
enddate = pd.to_datetime('today').strftime("%Y-%m-%d")
print('from: ', startdate, ' to: ', enddate)

Результат:

from:  2019-04-15  to:  2019-04-22

НО, если вы пропустили свое расписание на понедельник и это уже четверг, вы все равно можете получить понедельник на прошлой неделе с помощью приведенного ниже сценария:

import datetime
today = datetime.date.today()
startdate = today - datetime.timedelta(days=today.weekday(), weeks=1)
enddate = today - datetime.timedelta(days=today.weekday())
print('from: ', startdate, ' to: ', enddate)

Результат:

from:  2019-04-15  to:  2019-04-22
...