Google BigQuery + 3.5M Books: Sample Queries调用方法
SELECT DATE, sum(integer(REGEXP_EXTRACT(GCAM, r'wc:(\d+)'))) wordcount,avg(float(REGEXP_EXTRACT(GCAM, r'v19.1:([-\d.]+)'))) emot
FROM (TABLE_QUERY([gdelt-bq:internetarchivebooks], 'REGEXP_EXTRACT(table_id, r"(\d{4})") BETWEEN "1800" AND "2015"'))
group by DATE
该 SQL 语句的具体解释如下:
-
SELECT DATE, sum(integer(REGEXP_EXTRACT(GCAM, r'wc:(\d+)'))) wordcount, avg(float(REGEXP_EXTRACT(GCAM, r'v19.1:([-\d.]+)'))) emot
:选择日期列、单词总数列和情感平均值列进行计算,其中单词总数列会从 GCAM 字段中提取每个文本的单词总数,情感平均值则会从 GCAM 字段中提取每个文本的情感值。 -
FROM (TABLE_QUERY([gdelt-bq:internetarchivebooks], 'REGEXP_EXTRACT(table_id,r"(\d{4})") BETWEEN "1800" AND "2015"'))
:从 Internet Archive Books 数据集中(该数据集所属项目为 gdelt-bq)的所有表中筛选出表名符合正则表达式"(\d{4})"
的表,该正则表达式匹配四位数字,即以年份为名称的表,再从这些表中筛选出年份在 1800 年到 2015 年之间的表作为查询的数据源。 -
group by DATE
:按照日期进行分组汇总。
综上,该 SQL 语句的作用是从 Internet Archive Books 数据集中获取 1800 年至 2015 年之间的所有图书文本数据,并统计每个日期的单词总数和情感平均值。