civis.io.csv_to_civis

civis.io.csv_to_civis(filename, database, table, api_key=None, client=None, max_errors=None, existing_table_rows='fail', diststyle=None, distkey=None, sortkey1=None, sortkey2=None, delimiter=', ', headers=None, primary_keys=None, last_modified_keys=None, escaped=False, execution='immediate', credential_id=None, polling_interval=None, archive=False, hidden=True)[source]

Upload the contents of a local CSV file to Civis.

Parameters:
filename : str

Upload the contents of this file.

database : str or int

Upload data into this database. Can be the database name or ID.

table : str

The schema and table you want to upload to. E.g., 'scratch.table'.

api_key : DEPRECATED str, optional

Your Civis API key. If not given, the CIVIS_API_KEY environment variable will be used.

client : civis.APIClient, optional

If not provided, an civis.APIClient object will be created from the CIVIS_API_KEY.

max_errors : int, optional

The maximum number of rows with errors to remove from the import before failing.

existing_table_rows : str, optional

The behaviour if a table with the requested name already exists. One of 'fail', 'truncate', 'append', 'drop', or 'upsert'. Defaults to 'fail'.

diststyle : str, optional

The distribution style for the table. One of 'even', 'all' or 'key'.

distkey : str, optional

The column to use as the distkey for the table.

sortkey1 : str, optional

The column to use as the sortkey for the table.

sortkey2 : str, optional

The second column in a compound sortkey for the table.

delimiter : string, optional

The column delimiter. One of ',', '\t' or '|'.

headers : bool, optional

Whether or not the first row of the file should be treated as headers. The default, None, attempts to autodetect whether or not the first row contains headers.

primary_keys: list[str], optional

A list of the primary key column(s) of the destination table that uniquely identify a record. If existing_table_rows is “upsert”, this field is required. Note that this is true regardless of whether the destination database itself requires a primary key.

last_modified_keys: list[str], optional

A list of the columns indicating a record has been updated. If existing_table_rows is “upsert”, this field is required.

escaped: bool, optional

A boolean value indicating whether or not the source file has quotes escaped with a backslash. Defaults to false.

execution: string, optional, default “immediate”

One of “delayed” or “immediate”. If “immediate”, refresh column statistics as part of the run. If “delayed”, flag the table for a deferred statistics update; column statistics may not be available for up to 24 hours. In addition, if existing_table_rows is “upsert”, delayed executions move data from staging table to final table after a brief delay, in order to accommodate multiple concurrent imports to the same destination table.

credential_id : str or int, optional

The ID of the database credential. If None, the default credential will be used.

polling_interval : int or float, optional

Number of seconds to wait between checks for job completion.

archive : bool, optional (deprecated)

If True, archive the import job as soon as it completes.

hidden : bool, optional

If True (the default), this job will not appear in the Civis UI.

Returns:
results : CivisFuture

A CivisFuture object.

Notes

This reads the contents of filename into memory.

Examples

>>> with open('input_file.csv', 'w') as _input:
...     _input.write('a,b,c\n1,2,3')
>>> fut = civis.io.csv_to_civis('input_file.csv',
...                             'my-database',
...                             'scratch.my_data')
>>> fut.result()