ИК
Size: a a a
ИК
ИК
AZ
AZ
AZ
ИК
A B Cя делаю по ним full outer join спарком по колонке "A":
A1 B1 C1
A2 B2 C2
A3 B3 C3
A D
A1 D1
A4 D4
first.join(second, Seq("A"), "full_outer")Результат, очевидно, получаю вот такой:
+---+----+----+----+Теперь вопрос - как спарком поизящнее сделать такой же джойн, но для каждого конкретного значения в колонке A? Или без select distinct и затем fold не получится? Пример результата:
| A| B| C| D|
+---+----+----+----+
| A1| B1| C1| D1|
| A2| B2| C2|null|
| A3| B3| C3|null|
| A4|null|null| D4|
+---+----+----+----+
+---+----+----+----+
| A| B| C| D|
+---+----+----+----+
| A1| B1| C1| D1|
| A4|null|null| D4| <- full outer join A1 values with second dataset
| A1|null|null| D1|
| A2| B2| C2|null|
| A4|null|null| D4| <- full outer join A2 values with second dataset
| A1|null|null| D1|
| A3| B3| C3|null| <- full outer join A3 values with second dataset
| A4|null|null| D4|
+---+----+----+----+
ИК
A
ИК
A
AZ
ИК
ИК
AZ
AZ
A
AZ
VS
sel coalesce(t1.a, t2.a) a, t1.b, t1.c, t2.d
from t1
left join t2
on t1.a = t2.a
AZ
sel coalesce(t1.a, t2.a) a, t1.b, t1.c, t2.d
from t1
left join t2
on t1.a = t2.a