首页 > 解决方案 > 在德雷克工作流程中手动添加依赖项?

问题描述

假设我有一个德雷克计划,我在外部数据库中创建一个 SQL 表,然后在该工作之后,我从一些取决于初始工作的表下载。我的计划可能看起来像这样

drake_plan(up_job = create_sql_file('some_input.csv'), 
           down_job = download_from_sql('my_code.sql')

有没有办法手动强制 down_job 位于 up_job 的下游?没有任何内在的东西create_sql_filedownload_from_sql德雷克能够解析以推断关系,但我仍然想手动应用它。

谢谢!

标签: drake-r-package

解决方案


在命令中应该提到down_job依赖up_job,或者up_job创建file_out()者。up_jobdown_job

使用 up_job 返回值的示例

library(drake)

plan <- drake_plan(
  db_path = create_sql_db_from(file_in("some_input.csv")), 
  down_job = download_from_sql(db = db_path, file_in("my_code.sql"))
)

plan
#> # A tibble: 2 x 2
#>   target   command                                                    
#>   <chr>    <chr>                                                      
#> 1 db_path  "create_sql_db_from(file_in(\"some_input.csv\"))"          
#> 2 down_job "download_from_sql(db = db_path, file_in(\"my_code.sql\"))"

config <- drake_config(plan)
vis_drake_graph(config)

在此处输入图像描述

文件路径示例

library(drake)

plan <- drake_plan(
  up_job = create_sql_db_from(file_in("some_input.csv"), file_out("db_path")),
  down_job = download_from_sql(file_in("db_path"), file_in("my_code.sql"))
)

plan
#> # A tibble: 2 x 2
#>   target   command                                                         
#>   <chr>    <chr>                                                           
#> 1 up_job   "create_sql_db_from(file_in(\"some_input.csv\"), file_out(\"db_…
#> 2 down_job "download_from_sql(file_in(\"db_path\"), file_in(\"my_code.sql\…

config <- drake_config(plan)
vis_drake_graph(config)

reprex 包(v0.2.1)于 2019 年 1 月 25 日创建


推荐阅读