|
|
|
Заковыристая выборка контактных данных в Hadoop
|
|||
|---|---|---|---|
|
#18+
Добрый день! Нужна помощь в выборке. Даже с трудом представляю как ее реализовать. Есть таблица clients (client_id, name) Есть таблица contact (client_id, phone, phone_type (1,2,3,4,5,12), contact_flg (1,0), date_add (timestamp)) Задача: Для всех client_id найти только одно значение телефона по следующему приоритету: 1. Телефоны, где contact_flg = 1 с самой ранней датой добавления 2. Если у клиента contact_flg = 1 нет, то телефоны у которых contact_flg = 0 и phone_type=5 с самой ранней датой добавления 3. Если у клиента нет телефонов с п. 1-2, то телефоны у которых contact_flg = 0 и phone_type=2 с самой ранней датой добавления 4. Если у клиента нет телефонов с п. 1-3, то то телефоны у которых contact_flg = 0 и phone_type= любому значению с самой ранней датой добавления. 5. Если по клиенту вообще нет телефонов – вывести null Первый пункт можно с использование row num и сортировки сделать, это я понимаю, но как остальные четыре уместить? Результатом должна быть единственная пара Client_id, phone ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2021, 15:03 |
|
||
|
Заковыристая выборка контактных данных в Hadoop
|
|||
|---|---|---|---|
|
#18+
derart, А поверх Hadoop / hdfs что? Hive там, Spark/Scala или какая-нибудь экзотика типа ADLA/U-SQL и пр.? Или может есть склонность всю логику цепью на mapreduce вручную писать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2021, 16:56 |
|
||
|
Заковыристая выборка контактных данных в Hadoop
|
|||
|---|---|---|---|
|
#18+
vikkiv, поверх hadoop - hive Написал так, но может есть изящнее решение? Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2021, 09:41 |
|
||
|
Заковыристая выборка контактных данных в Hadoop
|
|||
|---|---|---|---|
|
#18+
derart, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. можно конечно подготовить наборы отвечающие условиям (каждому отдельно) и потом join а в select уже определить из какой таблицы выводить данные.. но это уже в зависимости от размеров таблиц (у Hive проблемы с индексами), профайлинг нужен для определения оптимальности под конкретную плотность/распределение данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2021, 06:35 |
|
||
|
|

start [/forum/topic.php?fid=48&gotolast=1&tid=1856537]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
| others: | 8ms |
| total: | 126ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...