【问题标题】:How can I export HDFS file in S3 to local machine as CSV file using Airflow如何使用 Airflow 将 S3 中的 HDFS 文件作为 CSV 文件导出到本地机器
【发布时间】:2020-03-26 06:21:11
【问题描述】:

我想创建一个气流作业,将存储在 S3 中的 hdfs 文件导出到本地机器。哪个气流算子可以用来做这个

【问题讨论】:

    标签: python amazon-web-services amazon-s3 hdfs airflow


    【解决方案1】:

    没有特定的 Airflow 运营商可以完全满足您的需求,但就我而言,我看到了两种可能解决此问题的选项(方式):

    1. 一种基本方法,使用 AWS CLI 实用程序,在 Airflow BashOperator 中调用 cp 命令,该命令利用 Bash 工具将目标 S3 文件复制到本地目的地,此方法已在此 Stack thread 中讨论过,但场景略有不同。
    2. 除了 Operators 之外,Airflow 还包含一个称为Hooks 的灵活机制,它通过实现与外部平台的通信通道来广泛扩展 Operators 的功能。 S3_hook 模块旨在提供 AWS S3 相关操作,最初基于 AWS boto3 库。但是,您可能不会通过包含列表找到合适的方法,您可能会对此感兴趣。但是最近我发现了S3_to_hive_operator,在检查了整个结构和source 代码之后,我发现了@987654331 @ 触发boto3 download_fileobj() 方法的Python 函数,将文件从S3 存储桶下载到本地驱动器。因此,您可以采用自定义 Airflow Operator,在特定的S3_hook 方法中为其提供部分修改的execute() 函数。

    希望对您的研究有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-10
      • 2017-05-21
      • 2020-05-25
      • 2018-02-27
      • 1970-01-01
      相关资源
      最近更新 更多