我們正在加載從google bigquery到的大量數據pandas dataframe(直接作為消費pandas,也作為消費xgbMatrix)。BQ導出格式CSV,JSON并且AVRO,我們的數據有日期,整數,浮點數和字符串,并且通常是“寬”(多列)。我們的第一種方法是將數據導入為CSV,但是解析時間很長:(32 GB,126 files,CSV) -> 25 min解析代碼:def load_table_files_to_pandas(all_files, table_ref):# load files to pandasdict_dtype = {}date_cols = []client = bigquery.Client() # create a bq clienttable = client.get_table(table_ref)for field in table.schema: pd_dtypes = {'string':'object', 'date':'object', 'float':'float64', 'integer':'float64' } dict_dtype[field.name] = pd_dtypes[field.field_type.lower()] if field.field_type.lower()== 'date': date_cols.append(field.name)print('start reading data') df_from_each_file = []for f in all_files: # looping over files df_from_each_file.append(pd.read_csv(f, dtype = dict_dtype, parse_dates = date_cols)) print('memory in use = {}'.format(psutil.virtual_memory().percent))df = pd.concat(df_from_each_file, ignore_index=True)print('end reading data')return df哪種格式解析速度更快pandas?[Avro,CSV,JSON]?也許有第三個人沒有被考慮?另外, 我們還嘗試dask|csv直接從存儲和本地磁盤進行嘗試,但是解析時間幾乎相同。
添加回答
舉報
0/150
提交
取消