【发布时间】:2017-06-08 07:44:10
【问题描述】:
我正在慢慢尝试从Spark 2.x 适应新的(强类型)Dataset[U],但在使用Window 函数时很难维护类型信息。
case class Measurement(nb:Long,x:Double)
ds 是Dataset[Measurement],我想做类似的事情
ds.map{m => (m,sum($"x").over(Window.orderBy($"nb"))}
但这不起作用(因为它给了我一个Dataset[(Measurement,Column)])而不是Dataset[(Measurement,Double)]
使用withColumn 给我一个Dataset[Row],所以我丢失了类型信息:
ds.withColumn("cumsum",sum($"x").over(Window.orderBy($"nb")))
那么,有没有更好的方法在强类型 Datasets 上使用 Window 函数?
【问题讨论】:
-
ds.withColumn("cumsum",sum($"x").over(Window.orderBy($"nb")))应该有你Dataset[(Measurement,Double)]行明智的。
标签: scala apache-spark apache-spark-dataset