У меня стол X с key(a,b)
и стол Y
с key(a)
. Я искал несколько функций API в Spark, но не могу найти то, что может дать мне соединение обеих этих таблиц только key(a)
.Сложное внутреннее соединение в Spark или Pyspark
Есть две структуры данных (думать о них как две таблицы с двумя разными ключами)
X.take(1) -> made of key(a,b)
[((u'"1"', u'"B8"'), (u'"1"', u'"B8"', array([[ 7.16677290e-01, 4.15236265e-01, 7.02316511e-02]])))]
Y.take(1) -> have key(a)
[(u'"5"', (u'"5"', array([[ 0.86596322, 0.29811589, 0.29083844, 0.51458565, 0.23767414]])))]
Теперь, я хочу что-то вроде структуры a -> [a,b,array_1,array_2]
.
Cogroup не служил моей цели, так как он возвращает декартовую продукцию key(a,b)
и key(a)
.
Любые предложения или намеки о том, как я могу получить структуру данных со строками, как:
a -> [a,b,array_1,array_2]
.
Я мог бы сменить ключи, но я не хочу этого делать. Он не ближе к [a, b, [value1], value2]. – ssvk3
Да, это так. Вы можете сопоставить '(a, Iterable ((b, [значение])), Iterable ([значение])' to '(a, (a, b, [value1], [value2]))' довольно легко. – climbage