:mod:`airflow.operators.hive_operator`
======================================

.. py:module:: airflow.operators.hive_operator


Module Contents
---------------

.. py:class:: HiveOperator(hql, hive_cli_conn_id='hive_cli_default', schema='default', hiveconfs=None, hiveconf_jinja_translate=False, script_begin_tag=None, run_as_owner=False, mapred_queue=None, mapred_queue_priority=None, mapred_job_name=None, *args, **kwargs)

   Bases: :class:`airflow.models.BaseOperator`

   Executes hql code or hive script in a specific Hive database.

   :param hql: the hql to be executed. Note that you may also use
       a relative path from the dag file of a (template) hive
       script. (templated)
   :type hql: str
   :param hive_cli_conn_id: reference to the Hive database. (templated)
   :type hive_cli_conn_id: str
   :param hiveconfs: if defined, these key value pairs will be passed
       to hive as ``-hiveconf "key"="value"``
   :type hiveconfs: dict
   :param hiveconf_jinja_translate: when True, hiveconf-type templating
       ${var} gets translated into jinja-type templating {{ var }} and
       ${hiveconf:var} gets translated into jinja-type templating {{ var }}.
       Note that you may want to use this along with the
       ``DAG(user_defined_macros=myargs)`` parameter. View the DAG
       object documentation for more details.
   :type hiveconf_jinja_translate: bool
   :param script_begin_tag: If defined, the operator will get rid of the
       part of the script before the first occurrence of `script_begin_tag`
   :type script_begin_tag: str
   :param mapred_queue: queue used by the Hadoop CapacityScheduler. (templated)
   :type  mapred_queue: str
   :param mapred_queue_priority: priority within CapacityScheduler queue.
       Possible settings include: VERY_HIGH, HIGH, NORMAL, LOW, VERY_LOW
   :type  mapred_queue_priority: str
   :param mapred_job_name: This name will appear in the jobtracker.
       This can make monitoring easier.
   :type  mapred_job_name: str

   .. attribute:: template_fields
      :annotation: = ['hql', 'schema', 'hive_cli_conn_id', 'mapred_queue', 'hiveconfs', 'mapred_job_name', 'mapred_queue_priority']

      

   .. attribute:: template_ext
      :annotation: = ['.hql', '.sql']

      

   .. attribute:: ui_color
      :annotation: = #f0e4ec

      

   
   .. method:: get_hook(self)



   
   .. method:: prepare_template(self)



   
   .. method:: execute(self, context)



   
   .. method:: dry_run(self)



   
   .. method:: on_kill(self)




