..., проверив, находится ли значение столбца в seq
.
Возможно, я не очень хорошо объясняю это, я в основном хочу этого (чтобы выразить это с помощью обычного SQL): DF_Column IN seq
?
Сначала я сделал это с помощью broadcast var
(где я поместил seq), UDF
(это проверили) и registerTempTable
.
Проблема в том, что я не смог ее протестировать, так как я столкнулся с известной ошибкой, которая, по-видимому, появляется только при использовании registerTempTable
с ScalaIDE.
Я закончил создание нового DataFrame
из seq
и выполнял внутреннее соединение с ним (пересечение), но я сомневаюсь, что это самый эффективный способ выполнения задачи.
Спасибо
РЕДАКТИРОВАТЬ: (в ответ на @YijieShen):
Как сделать filter
на основе того, находятся ли элементы одного столбца DataFrame
в другом столбце DF (например, SQL select * from A where login in (select username from B)
)?
например: Первый DF:
login count
login1 192
login2 146
login3 72
Второй DF:
username
login2
login3
login4
Результат:
login count
login2 146
login3 72
Попытки:
EDIT-2: Я думаю, теперь, когда ошибка исправлена, они должны работать. END EDIT-2
ordered.select("login").filter($"login".contains(empLogins("username")))
и
ordered.select("login").filter($"login" in empLogins("username"))
которые оба бросают Exception in thread "main" org.apache.spark.sql.AnalysisException
, соответственно:
resolved attribute(s) username#10 missing from login#8 in operator
!Filter Contains(login#8, username#10);
и
resolved attribute(s) username#10 missing from login#8 in operator
!Filter login#8 IN (username#10);