小编Dav*_*ith的帖子

Google BigQuery中的随机抽样

我刚刚发现RAND()函数虽然没有文档,但在BigQuery中有效.我能够使用以下方法从莎士比亚数据集中生成一个(看似)10个单词的随机样本:

SELECT word FROM
(SELECT rand() as random,word FROM [publicdata:samples.shakespeare] ORDER BY random)
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

我的问题是:使用这种方法代替参考手册"高级示例"部分中定义的HASH()方法有什么缺点吗?https://developers.google.com/bigquery/query-reference

google-bigquery google-cloud-platform

51
推荐指数
5
解决办法
2万
查看次数

在BigQuery中拆分字符串列

假设我在BigQuery中有一个包含2列的表.第一列表示名称,第二列是任意长度的分隔值列表.例:

Name | Scores
-----+-------
Bob  |10;20;20
Sue  |14;12;19;90
Joe  |30;15
Run Code Online (Sandbox Code Playgroud)

我想转换为第一个是名称的列,第二个是单个得分值,如下所示:

Name,Score
Bob,10
Bob,20
Bob,20
Sue,14
Sue,12
Sue,19
Sue,90
Joe,30
Joe,15
Run Code Online (Sandbox Code Playgroud)

这可以单独在BigQuery中完成吗?

google-bigquery

10
推荐指数
3
解决办法
1万
查看次数

使用TABLE_DATE_RANGE()的BigQuery通配符

今天早上关于新表通配符功能的好消息!有没有办法在包含日期但没有前缀的表上使用TABLE_DATE_RANGE()?

我有一个数据集,其中包含名为YYYYMMDD(无前缀)的表.通常我会这样查询:

SELECT foo 
FROM [mydata.20140319],[mydata.20140320],[mydata.20140321] 
LIMIT 100
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但是我收到了一个错误:

SELECT foo
FROM 
  (TABLE_DATE_RANGE(mydata., 
                TIMESTAMP('2014-03-19'), 
                TIMESTAMP('2015-03-21')))
LIMIT 100
Run Code Online (Sandbox Code Playgroud)

以及:

SELECT foo
FROM 
  (TABLE_DATE_RANGE(mydata, 
                TIMESTAMP('2014-03-19'), 
                TIMESTAMP('2015-03-21')))
LIMIT 100
Run Code Online (Sandbox Code Playgroud)

google-bigquery

9
推荐指数
3
解决办法
2万
查看次数

bigquery url解码

有没有一种简单的方法在BigQuery查询语言中进行URL解码?我正在使用一个包含某些值中包含URL编码字符串的列的表.例如:

http://xyz.com/example.php?url=http%3A%2F%2Fwww.example.com%2Fhello%3Fv%3D12345&foo=bar&abc=xyz
Run Code Online (Sandbox Code Playgroud)

我像这样提取"url"参数:

SELECT REGEXP_EXTRACT(column_name, "url=([^&]+)") as url 
from [mydataset.mytable]
Run Code Online (Sandbox Code Playgroud)

这给了我:

http%3A%2F%2Fwww.example.com%2Fhello%3Fv%3D12345
Run Code Online (Sandbox Code Playgroud)

我想做的是:

SELECT URL_DECODE(REGEXP_EXTRACT(column_name, "url=([^&]+)")) as url 
from [mydataset.mytable]
Run Code Online (Sandbox Code Playgroud)

从而返回:

http://www.example.com/hello?v=12345
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想避免使用多个REGEXP_REPLACE()语句(替换%20,%3A等...).

想法?

google-bigquery

6
推荐指数
2
解决办法
3304
查看次数

按日期分区?

我们正在尝试使用BigQuery来分析我们的软件应用程序生成的用户数据.

我们的工作表包含数亿行,每行代表一个唯一的用户"会话".每个包含时间戳,UUID和其他字段,描述用户在该会话期间与我们的产品的交互.我们目前每天生成大约2GB的数据(~10M行).

我们经常会对整个数据集运行查询(现在大约需要2个月,并且还在增长),但是典型的查询只会跨越一天,一周或一个月.我们发现随着表格的增长,我们的单日查询变得越来越昂贵(正如我们所期望的那样,给予BigQuery架构)

查询我们数据子集的最佳方法是什么?我能想到的一种方法是按天(或周,月等)将数据"分区"到单独的表中,然后在联合中一起查询它们:

SELECT foo from mytable_2012-09-01, mytable_2012-09-02, mytable_2012-09-03;

有没有比这更好的方法???

google-bigquery

5
推荐指数
1
解决办法
3905
查看次数

将文件加载到表时如何添加时间戳列

我正在将批处理文件加载到表中。

我想在表中添加一个时间戳列,以便可以知道记录中的插入时间。我正在以附加模式加载,因此并非所有记录都同时插入。

不幸的是,我在大型查询中找不到解决方法。当将文件加载到表中时,我没有找到用其他列添加填充填充的选项。我只想在代码中计算时间戳并将其作为所有插入过程的常量字段。

我现在正在执行的解决方案是加载到临时表,然后将表+新时间戳字段查询到目标表中。它可以工作,但是这是另一步骤,我要进行多次加载,由于另一步骤的延迟,整个过程会花费太多时间。

有人知道只有一步之遥的另一种解决方案吗?

google-bigquery

5
推荐指数
1
解决办法
865
查看次数

Bigquery"不是叶子场"错误

这个查询:

SELECT payload.pages FROM FLATTEN([publicdata:samples.github_nested] , payload)
ORDER BY created_at
LIMIT 1000
Run Code Online (Sandbox Code Playgroud)

结果出现此错误:

Error: Field payload.pages from table publicdata:samples.github_nested is not a leaf field.
Run Code Online (Sandbox Code Playgroud)

这是一个错误还是我做错了什么?

google-bigquery

5
推荐指数
1
解决办法
5989
查看次数

R:将分隔的字符串转换为变量

我有一个数据框,其中一列包含以空格分隔的字符代码列表:

"Ab B C"
""
"X C"
"N Ab F S"
:
Run Code Online (Sandbox Code Playgroud)

我想将其转换为多个列,每个列对应一个不同的值,指示(在1或0中)该值在列表中找到.以上示例给出了期望的结果:

df$Ab = 1,0,0,1
df$B = 1,0,0,0
df$C = 1,0,1,0
df$F = 0,0,0,1
df$N = 0,0,0,1
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

r

3
推荐指数
1
解决办法
68
查看次数

移动N天活跃用户(BigQuery)

我有一个表"事件"由2列组成:

userId | eventDate
-------+-------------------
s234124| 2015-01-01
a2s3166| 2015-01-02
c216782| 2015-01-03
z312235| 2015-01-04
Run Code Online (Sandbox Code Playgroud)

userId是用户标识.eventDate表示该用户发生事件的日期.

我想每天计算在该日期结束的30(或7或60等)日期间的活动唯一身份用户数.活动的唯一用户被定义为在给定窗口期间至少具有一个事件的userId.

我读过这篇文章,它描述了一个类似的问题,但我很难适应我的用例.

google-bigquery

3
推荐指数
1
解决办法
1004
查看次数

标签 统计

google-bigquery ×8

google-cloud-platform ×1

r ×1