Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在BigQuery中将np.array或python列表对象保存为单个记录的最佳方法?_Python_Arrays_Google Bigquery_Embedding - Fatal编程技术网

在BigQuery中将np.array或python列表对象保存为单个记录的最佳方法?

在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或类似的格式?也许这并不完全是您想要的,但以下选项是最接近您想要实现的解决方法

我有一个ML模型(文本嵌入),它输出一个大的1024长度的浮点向量,我想将它保存在一个BigQuery表中

向量中的单个值本身并不意味着什么,整个向量是感兴趣的特征。因此,我希望将这些列表存储在BigQuery中的一列中,而不是每个浮点值存储一列。此外,向原来只有4或5行的表中添加1024行似乎不是一个好主意


是否有一种方法可以将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表中,但免费层不提供该选项。

为什么不使用数组?