поэтому у меня есть следующее, и я пытаюсь использовать joinWith, и я хочу только то, что слева, а затем я хочу запустить функцию после этого соединения, я делаю следующее, но это не работает.
(для ясности, на левой стороне есть больше дополнительных столбцов в реальной жизни, поэтому я запускаю функцию после объединения, просто используя это как базовый c пример)
val df1 = Seq((1, "A1"), (2, "A2"), (3, "A3"), (4, "A4")).toDF("id", "value_left")
val df2 = Seq((3, "A3"), (4, "A4"), (4, "A4_1"), (5, "A5"), (6, "A6")).toDF("id", "value_right")
def anotherFunction(parm: Dataset[Row]): Dataset[Row]
val transformedDf: Dataset[Row] = df1
.joinWith(df2, df1("id")===df2("id"),"inner")
.transform(anotherFunction)
вывод внутреннего соединения до того, как я пытаюсь получить левую сторону, выглядит следующим образом, я хочу только левую сторону в этом случае, но когда я передаю свою функцию через .transform()
, он говорит, что требуется набор данных [(Row, Ряд)]
INNER JOIN
+---+----------+-----------+
| id|value_left|value_right|
+---+----------+-----------+
| 3| A3| A3|
| 4| A4| A4_1|
| 4| A4| A4|
+---+----------+-----------+