2

我希望能够为每个构建生成一个新数据集,其中当前日期附加到名称中,如下所示:

dataset_output_2021-11-27
dataset_output_2021-11-28
dataset_output_2021-11-29

是否可以在构建而不是单个数据集上放置一个时间表,以便每天生成新的数据集?

4

2 回答 2

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)

我从 Foundry 文档中获取了大部分代码。尝试在您的系统中搜索“从快照创建历史数据集”。

于 2021-12-06T14:53:49.150 回答
0

截至目前,不支持在运行时决定创建新数据集。

如果您可以在单独的问题中就您要完成的工作提供更多详细信息,我也许可以提供更量身定制的指导。

但是,如果您想要的是一种基于新的一天写入数据的有效方法,您应该查看有关 Hive 样式分区的平台文档!这是一种以快速过滤的方式布置数据的好方法。

于 2021-12-03T18:08:13.760 回答