首页 > 解决方案 > 在 Google BigQuery 中存储和比较整数向量的最佳方法?

问题描述

我们有一个数据集的用例,其中包含 5-6 个数字/浮点数/字符串字段,以及另一个具有整数向量的字段,其范围可以从 0 到数百或数千个整数。大多数情况下,整数的值将在 1 到 1000 之间,有一个可以大于 10E6 或 10E7 的小尾巴,但我们愿意在必要时丢弃它们。

在 BigQuery 中存储整数向量以及其他 5-6 个字段的最佳方法是什么,以便可以以成对或多路方式有效地比较向量?例如,对向量对(记录)运行 Mann Whitney 测试,或者测试一组 1000 个向量是否与一组另外 1000 个向量显着不同?我们将为大约 20,000-500,000 个特征的特征集(记录数)运行这些测试。

有任何想法吗?

目前我会选择将它们存储为以下值:

{132,234,641,123,4123,132,34,43,213,123,34,132}

编辑:

经过一番调查,似乎将这些存储为双引号字符串的最佳方法,例如:

"132,234,641,123,4123,132,34,43,213,123,34,132"

然后应用一些预处理和 UNNEST() 函数在查询时将字符串化数组转换为数组:

如何将字符串化数组转换为 BigQuery 中的数组?

我目前正在努力使用bq load.csv 文件填充表格:

$ num=11 && bq load --source_format=CSV insert_size_by_region.insert_size_by_region${num} /tmp/${num}.csv 上传完成。等待 bqjob_r43db3fbe8e450141_0000016717136592_1 ... (0s) 当前状态:DONE
加载操作中的 BigQuery 错误:错误处理作业 'test-project1:bqjob_r43db3fbe8e450141_0000016717136592_1':读取数据时出错,错误消息:CSV 表遇到太多错误,放弃。行数:1;错误: 1. 请查看错误流以获取更多详细信息。失败详细信息: - 读取数据时出错,错误消息:无法将“计数”解析为从位置 0 开始的字段计数(位置 2)的 int

标签: google-bigquery

解决方案


推荐阅读