【发布时间】:2018-12-03 04:43:53
【问题描述】:
鉴于以下两个 Spark Datasets、flights 和 capitals,在不先转换为 @ 的情况下返回 combined(即“joined”)结果的最有效方法是什么? 987654324@ 或在.select() 方法中按名称写出所有列?例如,我知道我可以使用(例如.map(x => x._1)访问元组或使用* 运算符:
result.select("_1.*","_2.*")
但后者可能会导致列名重复,我希望有一个更简洁的解决方案。
感谢您的帮助。
case class Flights(tripNumber: Int, destination: String)
case class Capitals(state: String, capital: String)
val flights = Seq(
(55, "New York"),
(3, "Georgia"),
(12, "Oregon")
).toDF("tripNumber","destination").as[Flights]
val capitals = Seq(
("New York", "Albany"),
("Georgia", "Atlanta"),
("Oregon", "Salem")
).toDF("state","capital").as[Capitals]
val result = flights.joinWith(capitals,flights.col("destination")===capitals.col("state"))
【问题讨论】:
标签: scala apache-spark dataset