2017-08-30 62 views
0

我有以下内容,无法运行。我收到错误“无效的表名:tk.events_*”。此表是嵌套的,但我使用的列不是(每行1个值)。与Bigquery一起使用RStudio的新手 - 无法识别嵌套表

当我将下面的查询替换为一个不同的,unnested表时,它按预期运行。是否有某种格式更改可以解决此问题?

project <- "my-project-765" # put your project ID here 

sql <- paste(" 
      #standardSQL 

      select 
userID, 
cast(datetime(servertimestamp,'America/Vancouver') as date) as loginDate 
FROM `tk.events_*` 
where _table_suffix between '20170802' and '20180803' 
and (eventType like '%Viewed' or eventType ='LoginSucceeded') 
group by userId, loginDate 

       ", 
     sep ="") 

df <- query_exec(query=sql, project=project, destination_table = "reports.UserLoginTable_copy", write_disposition = "WRITE_APPEND" , max_pages = 1, useLegacySql = 'f') ## run query and store in dataframe 

编辑:

改写了上述被legacySQL,它运行在我的格式指出的问题。

SELECT userID, 
     cast(DATE(DATE_ADD(serverTimestamp, -7, 'HOUR')) AS date) AS loginDate 
FROM TABLE_DATE_RANGE(tk.events_, TIMESTAMP(DATE_ADD(CURRENT_DATE(),-2,'DAY')), TIMESTAMP(CURRENT_DATE())) 
WHERE (eventType LIKE '%Viewed' 
     OR eventType ='LoginSucceeded') 
GROUP BY userId, 
     loginDate 
+0

只是想知道,如果你运行相同的查询,但用'tk.events_20170802'作为表会发生什么?它工作吗? –

+0

不幸的是仍然列为无效的表名。 – user2930740

回答

1

我最好的猜测是标准SQL出于某种原因未被激活。

尝试运行此命令,也许它的工作原理:

df <- query_exec(query=sql, project=project, destination_table = "reports.UserLoginTable_copy", write_disposition = "WRITE_APPEND" , max_pages = 1, use_legacy_sql = FALSE) 
+0

感谢 - 它看起来像我使用“useLegacySql”而不是“use_legacy_sql”并将它设置为一个字符串('false')而不是布尔按照您的示例。 – user2930740