google-bigquery - BigQuery 表提取的行可以随机化吗

标签 google-bigquery google-cloud-platform

我目前正在将 BigQuery 表提取到 Google Cloud Storage 中的分片 .csv 中——是否有任何方法可以对提取的行进行洗牌/随机化? GCS .csv 将用作 GCMLE 模型的训练数据,当前导出的顺序不是随机的,因为它们由类似的“标签”聚集在一起。

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

最佳答案

Can BigQuery table extracted rows be randomized?

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

I am looking for a way to ensure that the rows being output to the .csv are indeed random.

您应该首先创建对应于您的 csv 文件的表格,然后将它们一个接一个地提取到单独的 csv 中。在这种情况下,您可以控制 csv 中的内容

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

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

关于google-bigquery - BigQuery 表提取的行可以随机化吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46780489/

相关文章:

google-bigquery - 将 JsonObject 插入 Bigquery 给出 null

google-bigquery - 在 Google BigQuery 中选择除某些列之外的所有列?

python - 通过 Python 创建 Bigquery 表并加载数据

java - 如何测试应用程序与 Google Cloud Storage 的集成?

google-bigquery - 在 BigQuery 中,有没有办法查看所有用户的所有查询?

python - 将 Bigquery 结果转换为 Pandas Data Frame

收到电子邮件后触发 firebase 功能

python - 使用 Google App Engine 获取推文和关注者应用程序

kubernetes - 使用 JSON key 文件的身份验证方法 : unauthorized: GCR login failed

python - 导入错误 : No module named auth. 凭据