Сложные сети в улье - код оптимизации - PullRequest
0 голосов
/ 14 декабря 2018

У меня проблема с оптимизацией кода Hive.У меня есть огромная таблица:

Customer_id     Product_id     Date     Value
     1               1         02/28    100.0 
     1               2         02/02    120.0 
     1               3         02/10    144.0 
     2               2         02/15    120.0 
     2               3         02/28    144.0 
    ...             ...         ...     ... 

Я хочу создать сложную сеть, где я связываю товары через покупателей.График не должен быть направленным, и я должен посчитать количество связей между ними.В конце концов мне нужно это:

Product_x     Product_y     amount
    1             2           1
    1             3           1
    2             3           2

Может кто-нибудь помочь мне с этим?Мне нужен оптимизированный способ сделать это.Соединение таблицы с самим собой не является решением.Мне действительно нужен оптимальный способ для этого = /

CREATE TABLE X AS
SELECT 
     a.product_id as product_x,
     b.product_id as product_y,
     count(*) as amout
FROM table as a
JOIN table as b
ON a.customer_id = b.customer_id
WHERE a.product_id < b.product_id
GROUP BY product_x, product_y;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...