Смещение столбцов данных после агрегации [Hive]

Я собираю таблицу в Hive. После агрегации часть данных смещается слева направо, а может и наоборот, пока не уверен.

Пример данных ниже.

+---------+------------+------+
|  Site   |    Date    | Sent |
+---------+------------+------+
| Twitter | 2019-01-01 | pos  |
| Twitter | 2019-01-01 | pos  |
| Twitter | 2019-01-01 | neg  |
| Twitter | 2019-01-01 | pos  |
+---------+------------+------+

Код прост. 1. разделите различные варианты тональности 2. Подсчитайте и сгруппируйте по сайту и дате

  SELECT site, date
       , COUNT(CASE sent WHEN 'negative'THEN 1 ELSE 0 END) AS negative_
       , COUNT(CASE sent WHEN 'positive' THEN 1 ELSE 0 END) AS positive_
    FROM my_table
GROUP BY date, site;

Ожидаемый результат

+---------+------------+------+-----------+-----------+
|  Site   |    Date    | Sent | negative_ | positive_ |
+---------+------------+------+-----------+-----------+
| Twitter | 2019-01-01 | pos  | 0         |         3 |
| Twitter | 2019-01-01 | neg  |         1 |         0 |
+---------+------------+------+-----------+-----------+

Фактический результат примерно такой. Некоторые строки смещаются по столбцу, и кажется, что пара других смещается в другом направлении. Это не проблема, с которой я когда-либо сталкивался. Я внутренне спросил о конвейере данных и указанном разделителе, если таковой имеется. Пока нет уважения, но я не знаю, может ли это быть причиной.

+---------+------------+------------+-----------+-----------+
|  Site   |    Date    |    Sent    | negative_ | positive_ |
+---------+------------+------------+-----------+-----------+
| Twitter |  NULL      | 2019-01-01 |         0 |         3 |
| Twitter | 2019-01-01 | neg        |         1 |         0 |
+---------+------------+------------+-----------+-----------+

Кто-нибудь знает, почему? Что я мог с этим поделать?


ТАК хочет, чтобы я написал больше, чтобы это было представлено, я не знаю, что еще написать. Вышеизложенное кажется довольно простым.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
184
1

Ответы 1

Ваш код не будет давать указанный вами вывод, потому что COUNT() подсчитывает значения, отличные от NULL. ELSE 0 означает, что выражение CASE всегда возвращает значение, отличное от NULL, поэтому два подсчета должны давать одно и то же значение в каждой строке. Это не то, что показывают результаты.

Код, который вы намереваетесь:

SELECT site, date,
       SUM(CASE sent WHEN 'negative'THEN 1 ELSE 0 END) AS negative_
       SUM(CASE sent WHEN 'positive' THEN 1 ELSE 0 END) AS positive_
FROM my_table
GROUP BY date, site;

Это, вероятно, не решит проблему выравнивания, которая может быть больше связана с используемым вами инструментом, чем с результатами запроса.

Также я использую Alation

Josh Bennett 18.03.2019 21:45

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