首页 > 解决方案 > Bigquery 和 Pushshift:分区表不支持时间范围装饰器

问题描述

我正在关注https://pushshift.io/using-bigquery-with-reddit-data上的帖子,其中提供了一个示例 SQL 查询:

SELECT * FROM [pushshift:rt_reddit.comments@-60000-] LIMIT 1;

有了这个我得到以下错误:

分区表不支持时间范围装饰器

对我来说,该页面上的其他查询也失败了。写完之后有什么变化吗?

标签: sqlgoogle-bigquery

解决方案


自创建该帖子以来,作者似乎将表转换为使用基于时间的分区。您可以在列上使用过滤器created_utc来限制读取的数据量,例如:

SELECT * FROM pushshift.rt_reddit.comments WHERE DATE(created_utc) = '2018-06-26';

如果您单击 BigQuery UI 中查询编辑器右侧和下方的绿色复选标记,您应该会看到类似 的Processing up to 676.57 MB.内容,它比整个表格的大小要小得多。再举一个例子,如果您想在评论中搜索特定单词,如该页面上的一些查询所示,您可以编写如下查询:

SELECT COUNT(*), subreddit
FROM pushshift.rt_reddit.comments
WHERE created_utc BETWEEN '2018-05-01' AND '2018-05-31' AND
  LOWER(body) LIKE '%google%'
GROUP BY subreddit
ORDER BY 1 DESC;

推荐阅读