blob: e2818d4ae8afb890978425f60004fe42a0027309 [file] [log] [blame]
:mod:`airflow.hooks.presto_hook`
================================
.. py:module:: airflow.hooks.presto_hook
Module Contents
---------------
.. py:exception:: PrestoException
Bases: :class:`Exception`
.. py:class:: PrestoHook
Bases: :class:`airflow.hooks.dbapi_hook.DbApiHook`
Interact with Presto through PyHive!
>>> ph = PrestoHook()
>>> sql = "SELECT count(1) AS num FROM airflow.static_babynames"
>>> ph.get_records(sql)
[[340698]]
.. attribute:: conn_name_attr
:annotation: = presto_conn_id
.. attribute:: default_conn_name
:annotation: = presto_default
.. method:: get_conn(self)
Returns a connection object
.. method:: get_isolation_level(self)
Returns an isolation level
.. staticmethod:: _strip_sql(sql)
.. staticmethod:: _get_pretty_exception_message(e)
Parses some DatabaseError to provide a better error message
.. method:: get_records(self, hql, parameters=None)
Get a set of records from Presto
.. method:: get_first(self, hql, parameters=None)
Returns only the first row, regardless of how many rows the query
returns.
.. method:: get_pandas_df(self, hql, parameters=None, **kwargs)
Get a pandas dataframe from a sql query.
.. method:: run(self, hql, parameters=None)
Execute the statement against Presto. Can be used to create views.
.. method:: insert_rows(self, table, rows, target_fields=None, commit_every=0)
A generic way to insert a set of tuples into a table.
:param table: Name of the target table
:type table: str
:param rows: The rows to insert into the table
:type rows: iterable of tuples
:param target_fields: The names of the columns to fill in the table
:type target_fields: iterable of strings
:param commit_every: The maximum number of rows to insert in one
transaction. Set to 0 to insert all rows in one transaction.
:type commit_every: int