потому что вы создали кортеж из Dataset[Row]
:
val ds1: Dataset[Row] = Seq(
("NOW", "active", 1, 11),
("BEFORE", "active", 2, 11),
("AFTER", "active", 3, 33)
).toDF()
val ds2: Dataset[Row] = Seq(
("NOW", "sub_uuid1", 1, "com_uuid1"),
("BEFORE", "sub_uuid2", 2, "com_uuid2"),
(null, null, 3, null)
).toDF()
и только что сделали из них кортеж:
val df: (Dataset[Row], Dataset[Row]) = (ds1, ds2)
вы можете сделать то, что вам нужно, так:
val df: Dataset[(Row, Row)] =
Seq(
(Row("NOW", "active", 1, 11), Row("NOW", "sub_uuid1", 1, "com_uuid1")),
(Row("BEFORE", "active", 2, 11), Row("BEFORE", "sub_uuid2", 2, "com_uuid2")),
(Row("AFTER", "active", 3, 33), Row(null, null, 3, null))
).toDS()
На самом деле, создавать набор данных с кортежными строками - плохая практика. Если бы вы могли переписать свою функцию, взяв два кадра данных (DataFrame: a, DataFrame: b
) вместо ab: Dataset[(Row, Row)]
, это было бы намного лучше.