2017-06-08 2 views
0

Spark 2.xから新しい(厳密にタイプされた)に適応しようとしていますが、Windowの機能を使用するときはタイプ情報を維持するのに苦労しています。 (それは私のDataset[(Measurement,Column)]を与えるよう)強く型付けされたSparkデータセットでは、どのようにWindow Aggrgateを使用しますか?

case class Measurement(nb:Long,x:Double) 

dsDataset[Measurement]され、私を与える代わりにDataset[(Measurement,Double)]

withColumnを使用して、私は

ds.map{m => (m,sum($"x").over(Window.orderBy($"nb"))} 

ような何かをしたいと思います。しかし、これは動作しません。 a Dataset[Row]、タイプ情報が失われています:

ds.withColumn("cumsum",sum($"x").over(Window.orderBy($"nb"))) 

したがって、強く型付けされたDatasetsWindow関数を使用するより良い方法はありますか?

+0

'ds.withColumn( "CUMSUM"、SUM($ "X")で見つけることができますここで見つけることができます。オーバー( Window.orderBy($ "nb"))) 'あなたは' Dataset((Measurement、Double) '行を賢明に持っているはずです。 –

答えて

0

あなたは特別なケースではDataset[U]

Dataframe(またはDataset[Row])に変換するas[U]メソッドを使用することができます。

ds.withColumn("cumsum",sum($"x").over(Window.orderBy($"nb"))).as[(Measurement,Column)] 

は、それはあなたが新しい列を追加したよう

関連する問題