:py:mod:`airflow.providers.presto.transfers.gcs_to_presto`
==========================================================

.. py:module:: airflow.providers.presto.transfers.gcs_to_presto

.. autoapi-nested-parse::

   This module contains Google Cloud Storage to Presto operator.



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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.presto.transfers.gcs_to_presto.GCSToPrestoOperator




.. py:class:: GCSToPrestoOperator(*, source_bucket, source_object, presto_table, presto_conn_id = 'presto_default', gcp_conn_id = 'google_cloud_default', schema_fields = None, schema_object = None, delegate_to = None, impersonation_chain = None, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   Loads a csv file from Google Cloud Storage into a Presto table.
   Assumptions:
   1. CSV file should not have headers
   2. Presto table with requisite columns is already created
   3. Optionally, a separate JSON file with headers or list of headers can be provided

   :param source_bucket: Source GCS bucket that contains the csv
   :param source_object: csv file including the path
   :param presto_table: presto table to upload the data
   :param presto_conn_id: destination presto connection
   :param gcp_conn_id: (Optional) The connection ID used to connect to Google Cloud and
       interact with the Google Cloud Storage service.
   :param delegate_to: The account to impersonate using domain-wide delegation of authority,
       if any. For this to work, the service account making the request must have
       domain-wide delegation enabled.
   :param impersonation_chain: Optional service account to impersonate using short-term
       credentials, or chained list of accounts required to get the access_token
       of the last account in the list, which will be impersonated in the request.
       If set as a string, the account must grant the originating account
       the Service Account Token Creator IAM role.
       If set as a sequence, the identities from the list must grant
       Service Account Token Creator IAM role to the directly preceding identity, with first
       account from the list granting this role to the originating account.

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['source_bucket', 'source_object', 'presto_table']

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



