json - 将谷歌云存储中的 json 文件加载到大查询表中
问题描述
我正在尝试使用 python 使用客户端库来做到这一点。
我面临的问题是 JSON 文件上的 TIMESTAMP 是 Unix 纪元 TIMESTAMP 格式,大查询无法检测到:
根据文档:
所以我想知道该怎么办?
我考虑过在将 JSON 格式加载到 BigQuery 表之前手动更改它吗?
或者,也许正在寻找 BigQuery 方面的自动转换?
我想知道整个互联网,但找不到任何有用的东西。
提前感谢您的任何支持。
解决方案
您有 2 个解决方案
- 在 BigQuery 集成之前更新格式
- 或者您在 BigQuery 集成后更新格式
前
之前意味着更新您的 JSON(手动或通过脚本)或通过将 JSON 加载到 BigQuery(如 Dataflow)的过程来更新它。
我个人不喜欢这样,文件处理从来都不是有趣和高效的。
后
在这种情况下,您让 BigQuery 将 JSON 文件加载到临时表中,并将 UNIX 时间戳转换为数字或字符串。然后,对该临时表执行请求,将字段转换为正确的时间戳格式,并将数据插入到最终表中。
这种方式更流畅、更容易(编写一个简单的 SQL 查询)。但是,这意味着读取所有加载的数据(然后写入它们)的成本
推荐阅读
- pyspark - 如何将 PySpark delta 模块与 Databricks-connect 一起使用?
- excel - 基于来自另一列的过滤器从一列中提取不同值的计数
- c# - 具有接口实现问题的 C# 泛型类(编译器错误)
- entity-framework - 在分配列表之前检查可查询是否为空
- python - 使用数据框的 Pyspark 子选择/子查询连接
- regex - 从技术上讲,有没有办法将两个单词组合在一起,一个单词以“p”开头,另一个单词以“p”结尾
- java - 正则表达式 Java 中排除一个单词 | 移动视觉 API |文本块
- ios - 全屏显示的模态视图控制器,mvvmcross,xamarin.ios
- android - Android:使用 Kotlin 协程等待回调的结果
- java - 未找到 Java org.json JSONObject 的 JSON 解析错误