Как скачать все теги в таблице сообщений? - PullRequest
0 голосов
/ 28 апреля 2019

Если я напишу «выберите теги из сообщений, ГДЕ теги НЕ НУЛЯЮТ» на сайте https://data.stackexchange.com Я могу загрузить только 50000 строк и хочу, чтобы все строки

Надеюсь, кто-то может помочь!

Спасибо

1 Ответ

0 голосов
/ 28 апреля 2019

Это не в полной мере решает вашу проблему, но, по крайней мере, более логично формулирует логику.

Вы запрашиваете не ту таблицу для этой проблемы. Вместо этого:

with pt as (
      select pt.tagid, pt.postid, t.tagname
      from posttags pt join
           tags t
           on pt.tagid = t.id
     )
select pt.tagname, pt2.tagname, count(*)
from pt join
     pt pt2
     on pt.postid = pt2.postid and
        pt.tagname < pt2.tagname
group by pt.tagname, pt2.tagname
order by count(*) desc;

Вы по-прежнему ограничены 50 000 строк, но вы позволяете базе данных выполнять большую часть работы.

StackOverflow SEDE ограничен 50 000 строк. Это просто, как это работает. Несколько лет назад они перенесли данные в BigQuery, к сожалению, немного изменив схему (мне было бы очень интересно узнать, почему).

В любом случае вы можете вернуть большие наборы результатов на BQ. Эквивалентный запрос:

#standardSQL

with pt as (
      select pq.*, tag
      from `bigquery-public-data.stackoverflow.posts_questions` pq cross join
           unnest(split(pq.tags, '|')) tag 
     )
select pt.tag as tag1, pt2.tag as tag2, count(*) as cnt
from pt join
     pt pt2
     on pt2.id = pt.id and pt.tag < pt2.tag
group by 1, 2
order by count(*) desc;

Возвращает все 4 689 465 строк результатов, которые можно сохранить в таблице BigQuery или экспортировать в файл и переместить в другую среду.

Вы можете зарегистрировать учетную запись BigQuery и запустить ее.

...