'Executes a BigQuery copy command to copy data from one BigQuery table
to another. See here:
https://cloud.google.com/bigquery/docs/reference/v2/jobs#configuration.copy
For more details about these parameters.
:param source_project_dataset_tables: One or more dotted
(project:|project.)<dataset>.<table>
BigQuery tables to use as the source data. Use a list if there are
multiple source tables.
If <project> is not included, project will be the project defined
in the connection json.
:type source_project_dataset_tables: list|string
:param destination_project_dataset_table: The destination BigQuery
table. Format is: (project:|project.)<dataset>.<table>
:type destination_project_dataset_table: string
:param write_disposition: The write disposition if the table already exists.
:type write_disposition: string
:param create_disposition: The create disposition if the table doesn\'t exist.
:type create_disposition: string'

def run_copy(self, source_project_dataset_tables, destination_project_dataset_table, write_disposition='WRITE_EMPTY', create_disposition='CREATE_IF_NEEDED'):

    source_project_dataset_tables = ([source_project_dataset_tables] if (not isinstance(source_project_dataset_tables, list)) else source_project_dataset_tables)
    source_project_dataset_tables_fixup = []
    for source_project_dataset_table in source_project_dataset_tables:
        (source_project, source_dataset, source_table) = _split_tablename(table_input=source_project_dataset_table, default_project_id=self.project_id, var_name='source_project_dataset_table')
        source_project_dataset_tables_fixup.append({'projectId': source_project, 'datasetId': source_dataset, 'tableId': source_table})
    (destination_project, destination_dataset, destination_table) = _split_tablename(table_input=destination_project_dataset_table, default_project_id=self.project_id)
    configuration = {'copy': {'createDisposition': create_disposition, 'writeDisposition': write_disposition, 'sourceTables': source_project_dataset_tables_fixup, 'destinationTable': {'projectId': destination_project, 'datasetId': destination_dataset, 'tableId': destination_table}}}
    return self.run_with_configuration(configuration)
