airflow.providers.apache.hdfs.hooks.webhdfs

用于 Web HDFS 的 Hook。

模块内容

WebHDFSHook

与 HDFS 交互。这个类是对 hdfscli 库的封装。

属性

log

airflow.providers.apache.hdfs.hooks.webhdfs.log[源代码]
异常 airflow.providers.apache.hdfs.hooks.webhdfs.AirflowWebHDFSHookException[源代码]

基类: airflow.exceptions.AirflowException

WebHDFS Hook 特定的异常。

class airflow.providers.apache.hdfs.hooks.webhdfs.WebHDFSHook(webhdfs_conn_id=default_conn_name, proxy_user=None)[源代码]

基类: airflow.hooks.base.BaseHook

与 HDFS 交互。这个类是对 hdfscli 库的封装。

参数
  • webhdfs_conn_id (str) – 用于连接 webhdfs 客户端的连接 ID。

  • proxy_user (str | None) – 用于身份验证的用户。

conn_type = 'webhdfs'[源代码]
conn_name_attr = 'webhdfs_conn_id'[源代码]
default_conn_name = 'webhdfs_default'[源代码]
hook_name = 'Apache WebHDFS'[源代码]
get_conn()[源代码]

根据通过配置或环境变量设置的安全模式建立连接。

返回

一个 hdfscli InsecureClient 或 KerberosClient 对象。

返回类型

任意

check_for_path(hdfs_path)[源代码]

通过查询 FileStatus 来检查 HDFS 中路径是否存在。

参数

hdfs_path (str) – 要检查的路径。

返回

如果路径存在则为 True,如果不存在则为 False。

返回类型

bool

load_file(source, destination, overwrite=True, parallelism=1, **kwargs)[源代码]

上传文件到 HDFS。

参数
  • source (str) – 文件或文件夹的本地路径。如果是一个文件夹,它里面的所有文件将被上传。 .. note:: 这意味着不包含文件的空文件夹将不会在远程创建。

  • destination (str) – 目标 HDFS 路径。如果它已经存在并且是一个目录,文件将被上传到其中。

  • overwrite (bool) – 覆盖任何现有的文件或目录。

  • parallelism (int) – 用于并行化的线程数。值 0 (或负数) 使用与文件数量一样多的线程。

  • kwargs (任意) – 转发到 hdfs.client.Client.upload() 的关键字参数。

read_file(filename)[源代码]

从 HDFS 读取文件。

参数

filename (str) – 要读取的文件路径。

返回

文件内容为原始字符串

返回类型

bytes

此条目是否有帮助?