我希望能够为每个构建生成一个新数据集,其中当前日期附加到名称中,如下所示:
dataset_output_2021-11-27
dataset_output_2021-11-28
dataset_output_2021-11-29
是否可以在构建而不是单个数据集上放置一个时间表,以便每天生成新的数据集?
我希望能够为每个构建生成一个新数据集,其中当前日期附加到名称中,如下所示:
dataset_output_2021-11-27
dataset_output_2021-11-28
dataset_output_2021-11-29
是否可以在构建而不是单个数据集上放置一个时间表,以便每天生成新的数据集?
我认为另一种方法会更优雅。我建议不要创建一堆表,而是将所有数据保存在一个表中,并添加一个附加列作为日期。
我认为您已经有一个代表当天数据的数据集(例如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)
我从 Foundry 文档中获取了大部分代码。尝试在您的系统中搜索“从快照创建历史数据集”。
截至目前,不支持在运行时决定创建新数据集。
如果您可以在单独的问题中就您要完成的工作提供更多详细信息,我也许可以提供更量身定制的指导。
但是,如果您想要的是一种基于新的一天写入数据的有效方法,您应该查看有关 Hive 样式分区的平台文档!这是一种以快速过滤的方式布置数据的好方法。