Запустив образец сценария сетевого анализа Google BigQuery, я получаю синтаксическую ошибку: Ожидалось: <EOF>

Я пытаюсь использовать образец кода для Google BigQuery. Запрос находится в устаревшем SQL.

У меня есть этот набор в запросе BigQuery:

SELECT
  a.name,
  b.name,
  COUNT(*) AS count
FROM (FLATTEN(
    SELECT
      GKGRECORDID,
      UNIQUE(REGEXP_REPLACE(SPLIT(V2Persons,';'), r',.*', ")) 
name
FROM [gdelt-bq:gdeltv2.gkg] 
WHERE DATE>20150302000000 and DATE < 20150304000000 and V2Persons like 
'%Tsipras%'
,name)) a
JOIN EACH (
SELECT GKGRECORDID, UNIQUE(REGEXP_REPLACE(SPLIT(V2Persons,';'), r',.*', ")) name
    FROM
      [gdelt-bq:gdeltv2.gkg]
    WHERE
      DATE>20150302000000
      AND DATE < 20150304000000
      AND V2Persons LIKE '%Tsipras%')) b
ON
  a.GKGRECORDID=b.GKGRECORDID
WHERE
  a.name<b.name
GROUP EACH BY
  1,
  2
ORDER BY
  3 DESC
LIMIT
  250

Но это вызывает ошибку:

Error: Encountered " "ON" "ON "" at line 11, column 1. Was expecting:

в чем вопрос?

Mikhail Berlyant 30.05.2019 01:41

Мой вопрос в том, как исправить эту ошибку. :)

James Danowski 30.05.2019 01:46

трудно исправить тотальный бардак. где ты это взял? это то, что вы сами закончили - или где-то получили? вы могли бы скорее объяснить, чего вы пытаетесь достичь здесь

Mikhail Berlyant 30.05.2019 01:46

Я получил код здесь: blog.gdeltproject.org/google-bigquery-gkg-2-0-sample-queries

James Danowski 30.05.2019 01:49

Я пытаюсь получить данные из GDELT, который создаст выходной файл, содержащий пары имен и частоты, чтобы я мог импортировать их в Gephi и создать график.

James Danowski 30.05.2019 01:51

я вижу источник вашей проблемы - см. подробности в моем ответе

Mikhail Berlyant 30.05.2019 01:52
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
0
6
194
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

У вас есть от 1 до многих ) символов после присоединения. В частности, '%Tsipras%')) b должно быть '%Tsipras%') b. Большинство ошибок, в которых вы видите «Ожидалось:», из-за несоответствия пар открытия и закрытия со слишком большим количеством закрытий.

Не уверен на 100%, что это именно то, что вы ожидали, но, по крайней мере, с точки зрения синтаксиса, исправление ниже.

SELECT a.name, b.name, COUNT(*) AS COUNT
FROM (FLATTEN(
SELECT GKGRECORDID, UNIQUE(REGEXP_REPLACE(SPLIT(V2Persons,';'), r',.*', '')) 
name
FROM [gdelt-bq:gdeltv2.gkg] 
WHERE DATE>20150302000000 AND DATE < 20150304000000 AND V2Persons LIKE 
'%Tsipras%'
,name)) a
JOIN EACH (
SELECT GKGRECORDID, UNIQUE(REGEXP_REPLACE(SPLIT(V2Persons,';'), r',.*', '')) 
name
FROM [gdelt-bq:gdeltv2.gkg] 
WHERE DATE>20150302000000 AND DATE < 20150304000000 AND V2Persons LIKE 
'%Tsipras%') b
ON a.GKGRECORDID=b.GKGRECORDID
WHERE a.name<b.name
GROUP EACH BY 1,2
ORDER BY 3 DESC
LIMIT 250  

Исправления находятся в строках 3, 10 и 14.

В строках 3 и 10 я заменил " на ''
В строке 14 - убрал лишнее )

Я не уверен со строкой 14 - может быть, что открытие ( на самом деле отсутствует

Другие вопросы по теме