Скажем, у меня есть таблица:
+--------+-----------+----------+
|style_id|SegmentName|StyleViews|
+--------+-----------+----------+
|1 |Z |1 |
|1 |X |2 |
|2 |Z |1 |
|1 |Y |2 |
|3 |Y |1 |
|3 |X |1 |
+--------+-----------+----------+
Давайте назовем это table1
и еще одна таблица:
+-----------+
|allsegments|
+-----------+
|X |
|Y |
|Z |
+-----------+
Давайте назовем это table2
Как мне получить на выходе что-то вроде этого:
+--------+-----------+----------+
|style_id|SegmentName|StyleViews|
+--------+-----------+----------+
|1 |X |2 |
|1 |Y |2 |
|1 |Z |1 |
|2 |X |0 |
|2 |Y |0 |
|2 |Z |1 |
|3 |X |1 |
|3 |Y |1 |
|3 |Z |0 |
+--------+-----------+----------+
По сути, если нет совпадения, когда таблица1 соединена с таблицей2, она добавляет 0 на месте.
Похоже, довольно простая проблема, однако я пробовал все виды объединений, такие как full_outer, left_outer, right_outer, однако я не могу выполнить то, что хочу.Буду признателен за любую помощь в этом отношении.
Я пытаюсь сделать это в Spark SQL, однако я думаю, что эта проблема является общей проблемой SQL.