google-bigquery - GCP项目依赖GDELT数据库的问题
问题描述
在使用“GDELT”数据库在 GCP 中编程时,我遇到了一个问题,希望您能帮我解决它。
我想编写一个代码,数据库将在其中检查在以色列和阿拉伯国家之间签署“亚伯拉罕协议”期间媒体与谁打交道最多的人。
SELECT
V2Persons,
COUNT(1) AS count
FROM (
SELECT
UNIQUE(REGEXP_REPLACE(SPLIT(V2Persons,';'), r',.*', ")) V2Persons
FROM
`gdelt-bq.gdeltv2.gkg_partitioned`
WHERE
DATE>20200914000000
AND DATE < 20200916000000
AND LOWER(AllNames) LIKE '%Abraham Accords%' )
GROUP BY
Persons
ORDER BY
2 DESC
LIMIT
300
你能告诉我代码有什么问题以及如何解决吗?
解决方案
这里有很多问题,最简单的一步一步调试,使用WITH
语句并获取一些数据。
所以我将嵌套查询移至 WITH 子查询。没有 UNIQUE 功能,我已将其删除。然后SPLIT
函数返回一个数组,你不能只在数组上调用 REGEX 函数,数组首先必须是UNNEST
'ed。我最后得到了这个:
WITH persons AS (
SELECT SPLIT(gkg.V2Persons,';') pers_arr
FROM
`gdelt-bq.gdeltv2.gkg_partitioned` gkg
WHERE
DATE > 20200914000000 AND DATE < 20200916000000 AND
LOWER(AllNames) LIKE '%abraham accord%'
)
SELECT REGEXP_REPLACE(V2Persons, r',.*', '') V2Persons, COUNT(1) AS count
FROM persons pers, UNNEST(pers.pers_arr) V2Persons
GROUP BY V2Persons
ORDER BY 2 DESC LIMIT 300;
推荐阅读
- javascript - 如何在延迟后立即执行 setTimeout 函数?
- python - 如何在 python 中从 gmail 下载特定主题和日期的电子邮件附件
- javascript - 如何将文件名作为变量传递,从 doc1.html 到 doc2.html,并在 w3-include-html 函数中使用此变量
- python - 组合步骤时的Python“属性错误”
- php - 在 WooCommerce 产品循环上修剪产品名称
- javascript - 跳转到下一个未禁用的单选按钮
- javascript - 从数组中在画布上绘制正方形
- python - python manage.py runserver 不响应
- menu - Bootstrap 4下拉宽度
- docker - 应用程序未作为 Docker 容器加载