awswrangler.redshift.to_sql¶
-
awswrangler.redshift.
to_sql
(df: pandas.core.frame.DataFrame, con: redshift_connector.core.Connection, table: str, schema: str, mode: str = 'append', index: bool = False, dtype: Optional[Dict[str, str]] = None, diststyle: str = 'AUTO', distkey: Optional[str] = None, sortstyle: str = 'COMPOUND', sortkey: Optional[List[str]] = None, primary_keys: Optional[List[str]] = None, varchar_lengths_default: int = 256, varchar_lengths: Optional[Dict[str, int]] = None) → None¶ Write records stored in a DataFrame into Redshift.
Note
For large DataFrames (1K+ rows) consider the function wr.redshift.copy().
- Parameters
df (pandas.DataFrame) – Pandas DataFrame https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html
con (redshift_connector.Connection) – Use redshift_connector.connect() to use ” “credentials directly or wr.redshift.connect() to fetch it from the Glue Catalog.
table (str) – Table name
schema (str) – Schema name
mode (str) – Append, overwrite or upsert.
index (bool) – True to store the DataFrame index as a column in the table, otherwise False to ignore it.
dtype (Dict[str, str], optional) – Dictionary of columns names and Redshift types to be casted. Useful when you have columns with undetermined or mixed data types. (e.g. {‘col name’: ‘VARCHAR(10)’, ‘col2 name’: ‘FLOAT’}) diststyle : str Redshift distribution styles. Must be in [“AUTO”, “EVEN”, “ALL”, “KEY”]. https://docs.aws.amazon.com/redshift/latest/dg/t_Distributing_data.html
distkey (str, optional) – Specifies a column name or positional number for the distribution key.
sortstyle (str) – Sorting can be “COMPOUND” or “INTERLEAVED”. https://docs.aws.amazon.com/redshift/latest/dg/t_Sorting_data.html
sortkey (List[str], optional) – List of columns to be sorted.
primary_keys (List[str], optional) – Primary keys.
varchar_lengths_default (int) – The size that will be set for all VARCHAR columns not specified with varchar_lengths.
varchar_lengths (Dict[str, int], optional) – Dict of VARCHAR length by columns. (e.g. {“col1”: 10, “col5”: 200}).
- Returns
None.
- Return type
None
Examples
Writing to Redshift using a Glue Catalog Connections
>>> import awswrangler as wr >>> con = wr.redshift.connect("MY_GLUE_CONNECTION") >>> wr.redshift.to_sql( ... df=df ... table="my_table", ... schema="public", ... con=con ... ) >>> con.close()