Я пытаюсь использовать образец кода для 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:
Мой вопрос в том, как исправить эту ошибку. :)
трудно исправить тотальный бардак. где ты это взял? это то, что вы сами закончили - или где-то получили? вы могли бы скорее объяснить, чего вы пытаетесь достичь здесь
Я получил код здесь: blog.gdeltproject.org/google-bigquery-gkg-2-0-sample-queries
Я пытаюсь получить данные из GDELT, который создаст выходной файл, содержащий пары имен и частоты, чтобы я мог импортировать их в Gephi и создать график.
я вижу источник вашей проблемы - см. подробности в моем ответе
У вас есть от 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 - может быть, что открытие (
на самом деле отсутствует
в чем вопрос?