Hive 宏¶
以下宏可在 Jinja2 模板中使用。在模板中使用它们时,需要在前面加上 hive
前缀 - 例如 hive.closest_ds_partition
。
- airflow.providers.apache.hive.macros.hive.closest_ds_partition(table, ds, before=True, schema='default', metastore_conn_id='metastore_default')[源代码]
在列表中找到最接近目标日期的日期。
可以给定一个可选参数来获取之前或之后最接近的日期。
- 参数:
table – Hive 表名
ds – 日期戳
%Y-%m-%d
例如yyyy-mm-dd
before – 获取 ds 之前 (True)、之后 (False) 或任一侧最接近的日期
schema – 表的 schema
metastore_conn_id – 要使用的 metastore 连接
- 返回:
最接近的日期
- 返回类型:
str | None
>>> tbl = "airflow.static_babynames_partitioned" >>> closest_ds_partition(tbl, "2015-01-02") '2015-01-01'
- airflow.providers.apache.hive.macros.hive.max_partition(table, schema='default', field=None, filter_map=None, metastore_conn_id='metastore_default')[源代码]
获取表的最大分区。
- 参数:
schema – 表所在的 Hive schema
table – 您感兴趣的 Hive 表,支持点表示法,例如 “my_database.my_table”,如果发现点,则忽略 schema 参数
metastore_conn_id – 您感兴趣的 Hive 连接。如果已设置默认连接,则无需使用此参数。
filter_map – 用于分区过滤的 partition_key:partition_value 映射,例如 {‘key1’: ‘value1’, ‘key2’: ‘value2’}。只有匹配所有 partition_key:partition_value 对的分区才会被视为最大分区的候选项。
field – 要获取最大值的字段。如果只有一个分区字段,将自动推断。
>>> max_partition("airflow.static_babynames_partitioned") '2015-01-01'