将来自dask数据帧的大量数据加载到bigquery

问题描述 投票:0回答:1

我阅读了其他类似的主题并搜索了Google以找到更好的方法,但找不到任何在性能方面可接受的解决方案。

我有一个非常大的dask数据帧,有100个分区和57列。我想把它移到一个大查询表。到目前为止,我尝试了两种方法:

 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个小时。只是觉得应该有更好的方法来做到这一点。任何想法?

python google-bigquery bigdata dask dask-distributed
1个回答
0
投票

这种操作的最佳格式很可能是镶木地板(df.to_parquet),然后发送这些文件。您可以尝试使用df.map_partitions使用to_gbq并行发送片段,但基本过程很慢,我不知道BigQuery将允许同时块写入表的程度。

© www.soinside.com 2019 - 2024. All rights reserved.