通过 google BigQuery 将 unsigned int 转换为 signed int
Posted
技术标签:
【中文标题】通过 google BigQuery 将 unsigned int 转换为 signed int【英文标题】:Convert unsigned int to signed int through google BigQuery 【发布时间】:2012-06-16 00:32:29 【问题描述】:我尝试在 google BigQuery api 上运行查询并得到如下异常:
“函数 IF 中的参数类型不匹配:'distinctPlayers' 是 'TYPE_UINT64' 类型,'0' 是 'TYPE_INT32' 类型。”
查询太大,所以我只写了它失败的部分。
QUERY : sum(if(action_type == 3, distinctPlayers, 0)) as Game_Viral_Acceptor_Count
我的理解是:
if condition is true
then set distinctPlayers of type unsigned int64
otherwise set 0 which is of type int32
谁能说明如何将unsigned int64
转换为signed int
到BigQuery
。
提前致谢, 奥姆卡尔
【问题讨论】:
【参考方案1】:要回答您的问题,您转换为 signed int 的方式是通过 INTEGER
函数。所以你应该可以成功运行
... SUM(IF(action_type == 3, INTEGER(distinctPlayers), 0)) AS ...
但是,您看到的消息实际上指向 BigQuery 中的一个错误 - 我现在正在内部提交该错误。
【讨论】:
这个bug好像还在,我今天也遇到了同样的错误。我必须这样做才能使其工作:INTEGER(count (distinct myField, 10000))以上是关于通过 google BigQuery 将 unsigned int 转换为 signed int的主要内容,如果未能解决你的问题,请参考以下文章
通过 PHP 将 MySQL 数据发送到 Google BigQuery
从 Google 脚本将数据插入 BigQuery:遇到“”
通过 google BigQuery 将 unsigned int 转换为 signed int
通过 Google BigQuery API 将查询结果导出为 JSON