#schedule #palantir-foundry #foundry-code-repositories
#Расписание #палантир-литейное производство #литейный цех-код-хранилища
Вопрос:
Я хочу иметь возможность создавать новый набор данных с каждой сборкой, где к имени добавляется текущая дата, например:
dataset_output_2021-11-27 dataset_output_2021-11-28 dataset_output_2021-11-29
Можно ли включить в сборку расписание, а не один набор данных, чтобы новые наборы данных создавались ежедневно?
Ответ №1:
Я думаю, что другой подход был бы более элегантным. Я предлагаю не создавать кучу таблиц, а сохранить все данные в одной таблице с одним дополнительным столбцом для даты.
Я думаю, что у вас уже есть набор данных, который представляет данные за текущий день (например input_data
).
Следующее преобразование добавит date
столбец в постоянно растущую history
таблицу, чтобы вы всегда могли получить доступ к данным на любую дату.
from transforms.api import transform, Output, Input, incremental from pyspark.sql import functions as F @incremental(snapshot_inputs=['input_data']) @transform( input_data=Input("/path/to/snapshot/input"), history=Output("/path/to/historical/dataset"), ) def my_compute_function(input_data, history): input_df = input_data.dataframe() input_df = input_df.withColumn('date', F.current_date()) history.write_dataframe(input_df)
Я взял большую часть кода из литейной документации. Попробуйте выполнить поиск «Создать исторический набор данных из моментальных снимков» в вашей системе.
Ответ №2:
На данный момент решение во время выполнения создать новый набор данных не поддерживается.
Если вы можете дать более подробную информацию в отдельном вопросе о том, чего вы пытаетесь достичь, я мог бы дать более подробные рекомендации.
Однако, если вам нужен эффективный способ записи данных на основе нового дня, вам следует ознакомиться с документацией вашей платформы по разделению в стиле улья! Это отличный метод для быстрой фильтрации ваших данных.