error-handling - “No matching signature”截断了BigQuery错误消息

标签 error-handling google-bigquery user-defined-functions

集成用于查询的UDF时,通常会出现No matching signature错误。当函数签名短时,这些错误将提供很多信息。但是,当函数签名很长时,例如在JS UDF接收并返回复杂结构的情况下,错误消息将被截断并且变得无用。

例如:

No matching signature for function f for argument types: STRUCT<docGroup FLOAT64, docNum FLOAT64, docDate DATE, ...>.
Supported signature: f(STRUCT<docGroup FLOAT64, docNum FLOAT64, docDate DATE, ...>) at [202:8]

实际的不匹配隐藏在截断的参数中!

运行bq show -j <jobid>还会显示带有截断的参数列表的消息。

有什么办法可以获取完整的错误消息,或者以其他方式找出问题所在,而不必将我的SQL拆成碎片?

最佳答案

尝试运行bq show --format=prettyjson -j <jobid>documentation说这是查看作业完整信息的语法:

To see full job details, enter:

bq show --format=prettyjson -j myproject:US.bquijob_123x456_789y123z456c

关于error-handling - “No matching signature”截断了BigQuery错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59717580/

相关文章:

javascript - 为什么 document.getElementById ('foo' ).value 不是引用?

codeigniter - View Codeigniter : Illegal string offset中的foreach错误

sql - 删除 BigQuery STRING 字段中的重叠子字符串

sql - 如何将键值数组转换为 BigQuery/GoogleSQL 中的列?

vba - Excel UDF 对表中的数据 block 进行逆透视(熔化、反向透视、展平、标准化)

c - 在用户定义的函数内的 if() 语句中使用 strcmp 不会返回预期的输出

error-handling - 如何减少处理多行结果返回错误的代码

android - 如何为 exoplayer 实现自定义 LoadErrorHandlingPolicy

google-analytics - 用户 ID 未显示在 BigQuery 中

google-bigquery - 如何在 Cloud ML 中从 BigQuery 而不是 csv 文件进行训练?