可以将BigQuery表提取的行随机化

时间:2017-10-16 23:38:40

标签: google-bigquery google-cloud-platform

我目前正在将一个BigQuery表提取到Google云端存储中的分片.csv中 - 是否有任何方法可以对提取的行进行随机/随机化? GCS .csv将用作GCMLE模型的训练数据,当前的出口是非随机顺序,因为它们是由类似的标签组成的#34;。

这会导致培训GCMLE模型时出现问题,因为您必须在每个批次中提交所有标签的模型随机示例。虽然GCMLE / TF能够在单个.csv中随机化行的顺序,但是没有(据我所知)任何方法来随机化在多个.csv中选择的行。所以,我正在寻找一种方法来确保输出到.csv的行确实是随机的。

1 个答案:

答案 0 :(得分:1)

  

BigQuery表提取的行可以随机化吗?

没有。 Extract Job API(因此任何构建在它之上的客户端)都没有任何可以让你这样做的东西。

  

我正在寻找一种方法来确保输出到.csv的行确实是随机的。

首先应创建与csv文件对应的表,然后将它们逐个提取到单独的csv中。在这种情况下,您可以控制csv

的内容

如果您的担忧是处理成本(您需要扫描表格的次数与您需要的csv文件一样多) - 您可以在Migrating from non-partitioned to Partitioned tables中检查分区方法。这仍然涉及成本,但实质上减少了一个

最后,零成本选项是使用Tabledata.list API进行分页,同时在整个csv文件中分发响应 - 您可以在您选择的client中轻松完成此操作