将 Numpy 矩阵从 DataLab 上传到 BigQuery

Posted

技术标签:

【中文标题】将 Numpy 矩阵从 DataLab 上传到 BigQuery【英文标题】:Upload Numpy matrix from DataLab to BigQuery 【发布时间】:2018-01-10 09:26:45 【问题描述】:

我在 DataLab 中有一个 numpy 矩阵作为输出。如何在 BigQuery 中将其作为表获取?

到目前为止,我似乎需要将其转换为 JSON,保存在存储中并从那里上传。 有没有更简单的方法来完成这项工作?

谢谢

【问题讨论】:

你的矩阵结构如何? N×N?密集还是稀疏?尺寸是多少?您可以访问 python 云 api 吗?您不需要将其保存到存储中,您可以使用stream 或upload from file。实际上后者被pandas 使用:它将numpy 向量转换为Jsons 并使用StringIO 缓冲区将数据上传到BQ。 【参考方案1】:

使用pandas 包找到了一个简单的解决方案。

需要将数据转换为数据框,然后使用to_gbq 方法。

Here 是文档

唯一的缺点是记录在 BigQuery 的 streaming buffer 中保留数小时甚至数天,我不确定它会产生什么影响。

【讨论】:

以上是关于将 Numpy 矩阵从 DataLab 上传到 BigQuery的主要内容,如果未能解决你的问题,请参考以下文章

将 NumPy 向量转换为二维数组/矩阵

如何仅使用 numpy 从距离矩阵中提取数据点?

将两个字典与 numpy 矩阵作为值进行比较

将字典列表转换为 numpy 矩阵? [复制]

优化 Numpy 操作

如何使用numpy将矩阵与另一个矩阵中的每一行相乘