@@ -43,6 +43,7 @@ def add_csv_partitions(
4343 compression : Optional [str ] = None ,
4444 sep : str = "," ,
4545 boto3_session : Optional [boto3 .Session ] = None ,
46+ columns_types : Optional [Dict [str , str ]] = None ,
4647) -> None :
4748 """Add partitions (metadata) to a CSV Table in the AWS Glue Catalog.
4849
@@ -64,6 +65,10 @@ def add_csv_partitions(
6465 String of length 1. Field delimiter for the output file.
6566 boto3_session : boto3.Session(), optional
6667 Boto3 Session. The default boto3 session will be used if boto3_session receive None.
68+ columns_types: Optional[Dict[str, str]]
69+ Only required for Hive compability.
70+ Dictionary with keys as column names and values as data types (e.g. {'col0': 'bigint', 'col1': 'double'}).
71+ P.S. Only materialized columns please, not partition columns.
6772
6873 Returns
6974 -------
@@ -85,7 +90,7 @@ def add_csv_partitions(
8590
8691 """
8792 inputs : List [Dict [str , Any ]] = [
88- _csv_partition_definition (location = k , values = v , compression = compression , sep = sep )
93+ _csv_partition_definition (location = k , values = v , compression = compression , sep = sep , columns_types = columns_types )
8994 for k , v in partitions_values .items ()
9095 ]
9196 _add_partitions (database = database , table = table , boto3_session = boto3_session , inputs = inputs , catalog_id = catalog_id )
@@ -99,6 +104,7 @@ def add_parquet_partitions(
99104 catalog_id : Optional [str ] = None ,
100105 compression : Optional [str ] = None ,
101106 boto3_session : Optional [boto3 .Session ] = None ,
107+ columns_types : Optional [Dict [str , str ]] = None ,
102108) -> None :
103109 """Add partitions (metadata) to a Parquet Table in the AWS Glue Catalog.
104110
@@ -118,6 +124,10 @@ def add_parquet_partitions(
118124 Compression style (``None``, ``snappy``, ``gzip``, etc).
119125 boto3_session : boto3.Session(), optional
120126 Boto3 Session. The default boto3 session will be used if boto3_session receive None.
127+ columns_types: Optional[Dict[str, str]]
128+ Only required for Hive compability.
129+ Dictionary with keys as column names and values as data types (e.g. {'col0': 'bigint', 'col1': 'double'}).
130+ P.S. Only materialized columns please, not partition columns.
121131
122132 Returns
123133 -------
@@ -141,7 +151,7 @@ def add_parquet_partitions(
141151 table = sanitize_table_name (table = table )
142152 if partitions_values :
143153 inputs : List [Dict [str , Any ]] = [
144- _parquet_partition_definition (location = k , values = v , compression = compression )
154+ _parquet_partition_definition (location = k , values = v , compression = compression , columns_types = columns_types )
145155 for k , v in partitions_values .items ()
146156 ]
147157 _add_partitions (
0 commit comments