在BigQuery中将np.array或python列表对象保存为单个记录的最佳方法?
我有一个ML模型(文本嵌入),它输出一个大的1024长度的浮点向量,我想将它保存在一个BigQuery表中 向量中的单个值本身并不意味着什么,整个向量是感兴趣的特征。因此,我希望将这些列表存储在BigQuery中的一列中,而不是每个浮点值存储一列。此外,向原来只有4或5行的表中添加1024行似乎不是一个好主意在BigQuery中将np.array或python列表对象保存为单个记录的最佳方法?,python,arrays,google-bigquery,embedding,Python,Arrays,Google Bigquery,Embedding,我有一个ML模型(文本嵌入),它输出一个大的1024长度的浮点向量,我想将它保存在一个BigQuery表中 向量中的单个值本身并不意味着什么,整个向量是感兴趣的特征。因此,我希望将这些列表存储在BigQuery中的一列中,而不是每个浮点值存储一列。此外,向原来只有4或5行的表中添加1024行似乎不是一个好主意 是否有一种方法可以将python列表或np.array存储在BigQuery的列中(可能先将它们转换为json或类似的格式?也许这并不完全是您想要的,但以下选项是最接近您想要实现的解决方法
是否有一种方法可以将python列表或np.array存储在BigQuery的列中(可能先将它们转换为json或类似的格式?也许这并不完全是您想要的,但以下选项是最接近您想要实现的解决方法 首先,您可以将数据保存在本地一列的CSV文件中,然后保存到BigQuery中。还有一些可以从本地机器加载到BigQuery中的代码,您可能会感兴趣。我个人会选择CSV 我做了这个实验,在数据集中创建了一个空表,没有添加字段。然后我使用了第一个链接中提到的代码,将随机数据的一列保存在CSV文件中 如果在权限方面遇到以下错误,请参阅解决方案。它使用身份验证密钥
google.api_core.exceptions.Forbidden: 403 GET https://bigquery.googleapis.com/bigquery/v2/projects/project-name/jobs/job-id?location=EU: Request had insufficient authentication scopes.
此外,如果出现以下错误,您可能会发现链接很有用:
google.api_core.exceptions.BadRequest: 400 Provided Schema does not match Table my-project:my_dataset.random_data. Cannot add fields (field: double_field_0)
除了从本地文件加载数据外,您还可以将数据文件上载到谷歌云存储和应用程序。支持多种文件格式,如Avro、Parquet、ORC、CSV和换行符分隔的JSON
最后,还有一个选项,可以使用API直接导入到BigQuery表中,但免费层不提供该选项。为什么不使用数组?