使用气流配置单元操作符并输出到文本fi

2024-06-16 11:23:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用气流配置单元操作符执行配置单元查询并将结果输出到文件中。我不想在这里使用插入覆盖。在

hive_ex = HiveOperator(
    task_id='hive-ex',
    hql='/sql/hive-ex.sql',
    hiveconfs={
        'DAY': '{{ ds }}',
        'YESTERDAY': '{{ yesterday_ds }}',
        'OUTPUT': '{{ file_path }}'+'csv',
    },
    dag=dag
)

最好的办法是什么?在

我知道如何使用bash操作符来实现这一点,但我想知道是否可以使用hive操作符

^{pr2}$

Tags: 文件idtasksqldsex单元dag
2条回答

因为这是一个非常定制的用例,最好的方法是扩展Hive操作符(或者创建自己的Hive2CSVOperator)。实现将取决于您是否可以通过CLI或HiveServer2访问配置单元。在

配置单元CLI

我将首先尝试配置配置单元CLI连接并添加hive_cli_params,如Hive CLI hook code所示,如果这不起作用,请扩展钩子(这将使您能够访问所有内容)。在

HiveServer2

这个例子有一个单独的钩子(link)。它更方便一些,因为它有一个get_results方法(source)或{}方法(source)。在

运算符代码中的execute可能看起来与此类似:

def execute():
  ...
  self.hook = HiveServer2Hook(...)
  self.conn = self.hook.get_conn()

  self.conn.to_csv(hql=self.hql, csv_filepath=self.output_filepath, ...)

你需要气流挂钩。请看HooksHiveHook,有一个to_csv方法,或者您可以使用get_records方法,然后自己来做。在

相关问题 更多 >