@@ -13,13 +13,15 @@ def to_partitions(
1313 data : pd .DataFrame ,
1414 partition_columns : List [str ],
1515 savepath : str ,
16+ file_name : str = "data" ,
1617 file_format : str = "csv" ,
1718):
1819 """Save data in to hive patitions schema, given a dataframe and a list of partition columns.
1920 Args:
2021 data (pandas.core.frame.DataFrame): Dataframe to be partitioned.
2122 partition_columns (list): List of columns to be used as partitions.
2223 savepath (str, pathlib.PosixPath): folder path to save the partitions
24+ file_name: Name of file without extension.
2325 file_format (str): The file format to save the partitioned data in.
2426 Only 'csv', 'parquet' and 'avro' are supported. Defaults to 'csv'.
2527 Exemple:
@@ -66,16 +68,17 @@ def to_partitions(
6668 filter_save_path .mkdir (parents = True , exist_ok = True )
6769
6870 if file_format == "csv" :
69- file_filter_save_path = Path (filter_save_path ) / "data.csv"
70- # append data to csv
71+ file_filter_save_path = (
72+ Path (filter_save_path ) / f"{ file_name } .csv"
73+ )
7174 df_filter .to_csv (
7275 file_filter_save_path ,
7376 index = False ,
74- mode = "a" ,
75- header = not file_filter_save_path .exists (),
7677 )
7778 elif file_format == "parquet" :
78- file_filter_save_path = Path (filter_save_path ) / "data.parquet"
79+ file_filter_save_path = (
80+ Path (filter_save_path ) / f"{ file_name } .parquet"
81+ )
7982 df_filter .to_parquet (file_filter_save_path , index = False )
8083 elif file_format == "avro" :
8184 try :
@@ -85,7 +88,9 @@ def to_partitions(
8588 "Optional dependencies for handling AVRO files are not installed. "
8689 'Please install basedosdados with the "avro" extra'
8790 ) from exc
88- file_filter_save_path = Path (filter_save_path ) / "data.avro"
91+ file_filter_save_path = (
92+ Path (filter_save_path ) / f"{ file_name } .avro"
93+ )
8994 pandavro .to_avro (str (file_filter_save_path ), df_filter )
9095 else :
9196 raise NotImplementedError (
0 commit comments