在Airflow中运行R脚本?

19

能否将R脚本作为Airflow DAG运行?我尝试在网上查找相关文档但未能成功。谢谢。


你应该包含一些代码来执行。在我看来,皮埃尔的回答是目前为止最好的,在没有代码的情况下应该被接受。你只需在Airflow DAG中包含 bash my_shell_script.sh,然后在该bash脚本中使用RScript来执行你的R文件。 - Scott Skiles
5个回答

9
另一个选择是将你的R脚本容器化,并使用包含在标准发行版中的DockerOperator运行它。这样可以避免需要配置工作节点以安装正确版本的R和任何所需的R库。

8

目前似乎没有 R 运算符。

你可以编写自己的运算符并贡献给社区,或者简单地将你的任务作为 BashOperator 运行,调用 RScript。


4

使用BashOperator来执行R脚本。 例如: opr_hello = BashOperator(task_id='xyz',bash_command='Rscript Pathtofile/file.r')


2

0
结合其他答案的方法,您可以通过在DAG中使用BashOperator调用R脚本来在Docker容器中运行它,而无需将其捆绑到容器中。
    process_data = BashOperator(
        task_id='process_data',
        bash_command = 'docker run --rm=true -v /home/myuser/airflow/dags/source/my_r_project_folder:/source rocker/verse:4.3 Rscript /source/my_r_script.R'
        )
    process_data

这将目录/home/myuser/airflow/dags/source/my_r_project_folder挂载为一个卷,以便R脚本和任何数据文件都存在于容器中,然后使用rocker/verse image定义的环境从该/source目录执行文件my_r_script.R。为了保证可重复性,在这种情况下最好为该镜像指定一个特定的标签,例如4.3。
我的Airflow实例本身在Docker中运行,并使用主机机器的套接字启动兄弟容器。不同的设置可能需要以稍微不同的方式处理卷的挂载。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接