小编bog*_*thi的帖子

使用 bigquery 从 GDELT 收集数据

我正在尝试根据 gdelt 数据库中具有特定客串代码的所有事件构建一个经济指标。

因此,我们的想法是收集 1990 年至今的数据,看看经济合作如何根据某些词语的新闻出现而变化。具体来说,CAMEO 代码为 0211、0311、061、1011 和 1211。

我的问题是如何提取这些特定客串代码的数据。如果你能指导我找到任何来源,那将会有很大的帮助。

一个人建议我尝试使用 bigquery。老实说,到目前为止我还不知道如何导航 google bigquery 页面(我尽力了,可能来自非技术背景,这对我来说有点不知所措)。如果你们中的任何人可以帮助完成一个 Cameo 代码数据提取示例,那么我可以尝试其他事件。

编辑:我正在编辑以显示我所取得的进展以及运行查询时遇到的问题。

SELECT
   *
FROM
  [gdelt-bq:full.events]
WHERE
  Year >= 1979
  AND EventCode IN ('0211', '0311','061', '1011', '1211')
  AND Actor1CountryCode != Actor2CountryCode
Run Code Online (Sandbox Code Playgroud)

此查询在运行时将处理 228 GB,并且不包括两个国家/地区代码都为空的情况。它有超过 200 万行,我无法从 bigquery 平台将其下载为 csv 文件。

我需要帮助的部分如下,有什么方法可以获取满足以下条件的每个事件代码的事件总数

  1. Actor1Countrycode 和 Actor2CountryCode 应该不同,除非它们为 null
  2. 每月对满足上述条件的每个事件代码进行计数。

PS:您可以运行下面答案中Ben P给出的代码来查看数据库中列的数量和类型。

Edit2:我正在尝试编写另一个查询,其中具有指定代码的事件的 AvgTone 大于该特定月份中所有事件的 AvgTone 平均值。任何有关如何编写此内容的线索都会非常有帮助。假设我添加一个 WHERE 子句,其中 AvgTone 大于该特定时期(本例中为 MonthYear)的所有事件的 AvgTone 平均值。我的疑问是如何以查询格式编写它。

SELECT
  MonthYear,
  COUNT(*)
FROM
  [gdelt-bq:full.events]
WHERE
  EventCode IN ('0211',
    '0311',
    '061')
  AND …
Run Code Online (Sandbox Code Playgroud)

google-bigquery gdelt

4
推荐指数
1
解决办法
4460
查看次数

标签 统计

gdelt ×1

google-bigquery ×1