如何使用气流将配置单元操作符输出导出到本地csv文件?

jgovgodb  于 2021-06-27  发布在  Hive
关注(0)|答案(2)|浏览(747)

我正在尝试将hiveoperator(hivesql)的输出导出到csv文件并将其存储在本地。想知道我怎样才能在气流中做。有人能谈谈你的想法吗?

x0fgdtte

x0fgdtte1#

可以创建继承 HiveOperator 在您的dag中,如下所示:

class CustomHiveOp(HiveOperator):
    def execute(context):
        self.log.info('Executing: %s', self.hql)
        self.hook = self.get_hook()

        self.conn.to_csv(
            hql=self.hql, 
            csv_filepath=self.output_filepath, 
            schema='default',
            delimiter=',',
            lineterminator='\r\n',
            output_header=True,
            fetch_size=1000,
            hive_conf=None)

并将其用作:

hive_csv = CustomHiveOp(
    task_id='hive_to_csv',
    hql='YOUR_HIVE_QUERY',
    hive_cli_conn_id=''
    )
yiytaume

yiytaume2#

如果你使用一个 PythonOperator 或子类 HiveOperator 使用 HiveServer2Hookexecute 方法:

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

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

相关问题