我阅读了其他类似的主题,并搜索Google以找到更好的方法,但是找不到任何可以接受的解决方案。
我有一个非常大的dask数据框,其中包含100个分区和57列。我想将其移至bigquery表。到目前为止,我已经尝试了两种方法:
dd.compute() # to do compute and then use pandas gbq
pd.io.gbq.to_gbq(df, BQ_DATASET_NAME_TEMP + "." + BQ_EVENT_TEMP_TB, BQ_PROJECT_NAME, if_exists='append')
这需要很长时间(超过2个小时)
我也尝试使用:
dd.to_json('gs://dask_poc/2018-04-18/output/data-*.json')
将dask数据框移至GCS,然后将文件移至bigquery。仅将数据框移动到GCS需要3个小时。只是认为应该有一种更好的方法。有什么想法吗?
答案 0 :(得分:0)
您最好的格式是镶木地板(df.to_parquet
),然后发送这些文件。您可以尝试使用df.map_partitions
来使用to_gbq
并行发送片段,但是那里的基本过程很慢,而且我不知道BigQuery在多大程度上允许同时块写入表。