Здравствуйте, я пытаюсь протестировать следующую функцию, которая принимает набор данных [Row] в качестве параметра
def getReducedSubsidiaries(dsSubsidiaries: Dataset[Row])(implicit spark: SparkSession): Dataset[SubsidiariesImpacted] = {
import spark.implicits._
dsSubsidiaries.as[SubsidiariesImpactedStage]
.groupByKey(_.subsidiary_uuid)
.reduceGroups((a, b) => if (a.event_timestamp.compareTo(b.event_timestamp) >= 0) a else b)
.map(_._2)
.select(
$"subsidiary_uuid",
$"subsidiary_id",
$"company_uuid"
)
.as[SubsidiariesImpacted]
}
Я пытаюсь создать DataSet для передачи через эту функцию, но я не уверен, как чтобы преобразовать этот набор данных, который я создал, в набор данных [Row], который ему нужен.
val ts1 = Timestamp.valueOf("2019-08-01 00:00:00")
val ts2 = Timestamp.valueOf("2019-09-20 00:00:00")
val ts3 = Timestamp.valueOf("2019-11-27 00:00:00")
val subsidiaries:Dataset[SubsidiariesImpactedStage] = Seq(
SubsidiariesImpactedStage(ts1,"active","sub_uuid1",32L,"comp_uuid1"),
SubsidiariesImpactedStage(ts2, "inactive","sub_uuid1",32L, "comp_uuid1"),
SubsidiariesImpactedStage(ts3, "active", "sub_uuid1", 5L, "latest_comp_uuid1")
).toDS()