google-bigquery - bigquery 中的 UNNEST 不起作用,出现“无法访问 ARRAY 类型值的字段”
问题描述
新手到 bigquery,但我需要从 crashlytics 中查询一个简单的项目,该项目转储到 bigquery 中。
在一个完美的世界中......这个查询对我来说很有意义,但exceptions
它是一种更复杂的类型,需要取消嵌套?
SELECT exceptions.exception_message
FROM `rollertoaster-235.firebase_crashlytics.com_rollertoaster_app_ANDROID`
WHERE STARTS_WITH(issue_title, 'MyCrashFile.java') LIMIT 1000
异常在表模式中定义如下:
我想要做的就是得到一个异常消息的结果列表,但它不喜欢 UNNEST。阅读一些文档和其他 SO 问题......看起来我需要“UNNEST”。但我得到一个类似的错误。
SELECT asdf
FROM `rollertoaster-235.firebase_crashlytics.com_rollertoaster_app_ANDROID`,
UNNEST(exceptions.exception_message) AS asdf
WHERE STARTS_WITH(issue_title, 'MyCrashFile.java') LIMIT 1000
错误:
Cannot access field exception_message on a value with type ARRAY<STRUCT<type STRING, exception_message STRING, nested BOOL, ...>> at
解决方案
看起来您正在尝试取消嵌套结构数组中的字段,而不是数组本身。尝试这样的事情,它取消嵌套数组并投影未嵌套记录/结构的字段:
SELECT ex.exception_message
FROM `your.table`,
UNNEST(exceptions) as ex
WHERE STARTS_WITH(issue_title, 'MyCrashFile.java') LIMIT 1000
推荐阅读
- javascript - 文本悬停到具有多列的图像并在中心固定图像 - 鼠标悬停
- python - (discord py) 我无法访问服务器
- javascript - 使用javascript以慢速方式向下滚动的问题
- c# - 如何在您正在测试的方法中初始化 Moq 类?
- ms-access - 如果存在,则将字段从一个表更新到另一个表,否则为空
- rust - 如何在闭包中传递捕获字符串而不导致编译器错误?
- lua - 如何将队长排名到第一个加入团队的玩家 roblox studio
- java - 不同机器上的java parallelStreams
- r - 极地时间图中的间隙 - 如何连接 geom_line 中的起点和终点或删除空格
- java - 如何使用 Java 对象训练 DeepLearning4J 模型...在这个问题上找不到任何帮助