sql - Bigquery 和 Pushshift:分区表不支持时间范围装饰器
问题描述
我正在关注https://pushshift.io/using-bigquery-with-reddit-data上的帖子,其中提供了一个示例 SQL 查询:
SELECT * FROM [pushshift:rt_reddit.comments@-60000-] LIMIT 1;
有了这个我得到以下错误:
分区表不支持时间范围装饰器
对我来说,该页面上的其他查询也失败了。写完之后有什么变化吗?
解决方案
自创建该帖子以来,作者似乎将表转换为使用基于时间的分区。您可以在列上使用过滤器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;
推荐阅读
- kubernetes - 如何从java app(k8s)收集日志到fluentd(k8s)
- java - 为什么我的测试junit cucumber测试在一起运行时失败,但单独通过,在第二次测试中抛出没有这样的ID会话?
- ios - 拖动时更改表格视图单元格背景颜色
- javascript - 为数组中的每个项目创建一个新的音频元素?
- ruby-on-rails - 在 csv 文件上创建带时间戳的标签(ruby 代码)
- google-bigquery - 如何选择具有未嵌套列的记录没有键
- android - 处理当前 Activity 的 Android 推送通知
- rest - 从 RESTful Web 服务获取状态码
- react-native-ui-kitten - 在 withStyles 函数之外访问主题变量 (react-native-ui-kitten)
- angular - 从 Select 触发的 Angular HttpErrorInterceptor 中的 NgbModal 抛出 ExpressionChangedAfterItHasBeenCheckedError