Нужна помощь в поиске лучших комментариев reddit по темам - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь собрать (скажем, 20 самых популярных) комментариев в большинстве постов данного подредита.

Любая помощь будет принята!

У меня естьПолучил этот код, который я использую в BigQuery, но я не могу получить оценку поста и оценку комментариев без дублирования вопроса.

SELECT posts.title, posts.score, comments.body, posts.subreddit
FROM `fh-bigquery.reddit_comments.2018_10` AS comments
JOIN `fh-bigquery.reddit_posts.2018_10`  AS posts
ON posts.id = SUBSTR(comments.link_id, 4) 
WHERE posts.subreddit = 'Showerthoughts'

Для упрощенного примера я хотел бы иметь возможностьсм:

Заголовок сообщения 1 |Сообщение Оценка |(В заголовке сообщения 1) Тело комментария 1 |Оценка по баллам

Заголовок сообщения 1 |Сообщение Оценка |(В заголовке сообщения 1) Тело комментария 2 |Оценка по баллам

Заголовок сообщения 2 |Сообщение Оценка |(В пределах заголовка сообщения 2) Тело комментария 1 |Оценка по баллам

Заголовок сообщения 2 |Сообщение Оценка |(В заголовке сообщения 2) Тело комментария 2 |Оценка по комментариям

1 Ответ

0 голосов
/ 27 января 2019

Вот быстрый способ обойти проблему дублированных текстовых блобов:

select title, score, body, subreddit from (
    SELECT 
        to_hex(md5(posts.title)), 
        array_agg(posts.title)[offset(0)] as title, 
        array_agg(comments.body)[offset(0)] as body, 
        array_agg(posts.score)[offset(0)] as score, 
        array_agg(posts.subreddit)[offset(0)] as subreddit
    FROM `fh-bigquery.reddit_comments.2018_10` AS comments
    JOIN `fh-bigquery.reddit_posts.2018_10`  AS posts
    ON posts.id = SUBSTR(comments.link_id, 4) 
    WHERE posts.subreddit = 'Showerthoughts'
    group by 1
    order by 1
)

Идея состоит в том, чтобы преобразовать этот дорогой текстовый блоб в хэш md5, а затем продолжить свой обычный бизнес суникальные записи.Вы можете сортировать вещи по своему усмотрению по этим различным значениям.

...