google-cloud-platform - 将数据从存储加载到 bigquery 时解析数据类型时出错
问题描述
我有一个大型 bigquery 表,其架构如下:
id:integer,age:integer,name:string,id2:integer,grade1:float,....,grade100:float
该表是从谷歌存储加载的,现在我正在尝试附加另一个具有相同列数和“相同类型”列的文件。问题是这两个文件都是使用相同的脚本生成的,但似乎(由于我仍然不知道的原因)第二个文件中应该是整数的列是浮点数。因此,我要附加的第二个 csv 文件的架构是:
**id:float**,**age:float**,name:string,**id2:float**,grade1:float,....,grade100:float
这两个文件的示例是: BQ 表中的文件:
id age name id2 grade1 ..... grade100
1 22 John 3 6.2 ..... 6.1
我试图附加的文件中的数据如下:
id age name id2 grade1 ..... grade100
3.0 22.0 Peter 5.0 6.5 ..... 6.3
如何“强制”或强制转换存储中文件的第二种数据类型以匹配我已经在 BQ 中的表的数据类型,这样我就不会在年龄、id 等方面存在这些冲突?
注意:这不是实际的架构。没有年龄或成绩,但它是一种更简单的方式来代表我遇到的问题。
编辑:我在 BigQuery 中没有第二个文件,这就是我想要做的。我正在遵循的步骤是:
- 点击数据集
- 点击“创建表”
- 选择我感兴趣的存储桶/文件夹/文件
- 转到高级选项并选择“附加到表格”选项。
这是正确的方法吗?
解决方案
你拥有了它。从字面上看CAST()
。
例如,SELECT id, age, name, CAST(id2 as FLOAT64) ...
投射转换的细节可以在https://cloud.google.com/bigquery/docs/reference/standard-sql/conversion_rules中找到
推荐阅读
- r - 如何找到与距离矩阵的距离最小的两个对象?
- android - 如何在 Android 应用的 Express API 中进行 Google OAuth 登录?
- flutter - 像图像一样颤动的文本字段设计
- search - Algolia:跨多个字段搜索和评分结果
- python - Python Django - 上传图片以在开发模式下在浏览器中查看
- error-handling - 仅在 rmarkdown 中运行 rchunk 时,stargazer 错误“无法更改 NULL 的长度”
- python - 我无法在我的 django HTML 模板中显示我的图像
- javascript - TypeScript 中的变量声明错误
- php - 使用引导产品卡表单显示数据库记录时出现问题
- validation - 一种优雅的获取结果的方式
基于 Result<_, E1> 和 Result ?