代码之家  ›  专栏  ›  技术社区  ›  pedram

在drake工作流中手动添加依赖项?

  •  0
  • pedram  · 技术社区  · 5 年前

    假设我有一个drake计划,在这个计划中,我在外部数据库中创建一个SQL表,然后在该作业之后,我从依赖于初始作业的某个表下载。我的计划可能是这样的

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

    有没有办法手动强制down\u job位于up\u job的下游?没有什么内在的 create_sql_file download_from_sql drake可以通过解析来推断这种关系,但我仍然希望手动应用它。

    谢谢!

    1 回复  |  直到 5 年前
        1
  •  1
  •   landau    5 年前

    down_job 依靠 up_job ,或者 或者 file_out() 创建人 启动\u作业 应该在命令中提到 下岗 .

    使用up\u 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)
    

    enter image description here

    文件路径示例

    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)
    

    于2019-01-25由 reprex package (第0.2.1版)

    推荐文章