我不得不将一个表(3.8GB)从BigQuery导出到GCP中,它将我的表分成100个较小的json文件,每个100mb。 现在我希望能够将它们放回一个json文件中。有没有有效的方法呢?它可以是R,Python,Java。 或者,如果有人知道处理这些文件的更好方法,我感谢您的帮助。
答案 0 :(得分:2)
您可以使用一个命令将GCS中的多个文件组合成一个新的大文件:
gsutil compose gs://bucket/obj1 [gs://bucket/obj2 ...] gs://bucket/composite
请注意,在单个操作中可以组成的组件数量存在限制(当前为32)。
给定复合对象的组件总数存在限制(当前为1024)。这意味着您最多可以追加1023次每个对象。
每个项目的速率限制(目前为200),每秒可以组成的组件数。此速率计算附加到复合对象的组件以及复制它们所属的复合对象时复制的组件。
答案 1 :(得分:1)
另一种选择是使用Cloud Dataflow。可能有点矫枉过正,但效果很好。我已经写了一个你可以使用的管道,所以你不需要自己编写代码:https://github.com/shinesolutions/bigquery-table-to-one-file
答案 2 :(得分:0)
在Java中, 为此,我将编写一个脚本,首先将一个文件转换为json数据的Object。在任何循环中,我将为您的100个文件执行相同操作并将这些对象设置为列表。这样我就可以使用Jackson库轻松地在单个文件中编写该列表。
要将您的Json文件数据转换为Pojo,您可以获取下面提到的网站的帮助: http://pojo.sodhanalibrary.com/