Estou tentando eliminar uma coluna usando a função drop. Mas a coluna permanece após a queda. O problema fica evidente no seguinte código:
val students =
Seq(
(1, 100, "Steve"),
(2, 101, "Peter"),
(3, 101, "Debby"),
(4, 102, "Michael")
).toDF("student_id", "dept_id", "student_first_name")
val validDepartments =
Seq(
(100),
(102),
).toDF("dept_id")
val validStudents =
students.as("s")
.join(validDepartments.as("d"), col("s.dept_id") === col("d.dept_id"))
.drop("d.dept_id")
validStudents.show(false)
Isso produz:
+----------+-------+------------------+-------+
|student_id|dept_id|student_first_name|dept_id|
+----------+-------+------------------+-------+
|1 |100 |Steve |100 |
|4 |102 |Michael |102 |
+----------+-------+------------------+-------+
Eu não esperava ver o último "dept_id" (por causa de .drop("d.dept_id")
). o que estou perdendo?
É um bug conforme declarado aqui ?
Melhor usar uma assinatura de junção um pouco diferente
para conseguir o que deseja, o próximo código funcionará
ou, se você quiser sua forma de adesão