阅读 drake 包的文档,我发现没有其他方法可以在不使用“file_in”和“file_out”的情况下定义目标的顺序。
file_in() 标记目标所依赖的单个文件(和整个目录)。
file_out() 标记目标创建的单个文件(和整个目录)。
但是,不可能将两者都与动态目标一起使用。
那么如何定义动态目标之间应该遵循的顺序呢?我也试过用make(plan, targets = c("ftp_list", "download.dbc", "dbc_list", "generate_parquet"))
,但没用
例如,在下面的代码中,我有四个目标。我想要什么(订购):
- 从服务器获取 ftp 列表
- 从 ftp 列表中下载第一个文件(高清空间很少可以全部下载)
- 获取下载的文件
- 转换为 .parquet(然后重新开始。下载第二个文件,转换为 parquet...)
知道如何在不使用 file_in 和 file_out 的情况下链接动态目标(在这种情况下不允许)?谢谢!
代码仅作为示例:
URL <- "ftp://ftp.url"
LOCAL_PATH <- paste0(getwd())
plan <- drake_plan(
ftp_list = obtain_filenames_from_url(url_ = URL,
remove_extension_from_filename_ = FALSE,
full_names = TRUE)[0:10],
download.dbc = target(download_dbc(ftp_list,
local_path = paste0(LOCAL_PATH, "/")),
dynamic = map(ftp_list)),
dbc_list = target(list.files(LOCAL_PATH, full.names = TRUE,
pattern = "*.dbc")),
generate_parquet = target(convert_dbc(dbc_list, delete_dbc_after_conversion = TRUE),
dynamic = map(dbc_list))
)
计划图输出: