3
sparkでラグ関数を実装する必要があります。 (ハイブ/一時スパークテーブルからいくつかのデータを持つ)は私のような の下に行うことができましたパラメータを動的に設定したスパークラグ関数
DFは、これらの行を持って言う:
最初の列が希望の実際の遅れ番号ですlagno:value
0, 100
0, 200
2, null
3, null
2番目の列は実際の値です。
私はそれが動作します。このクエリを実行すると:
DataFrame df;
DataFrame dfnew=df.select(
org.apache.spark.sql.functions.lag(df.col("value"), 1).over(org.apache.spark.sql.expressions.Window.orderBy(new1.col("value"))));
ハードコードは、ラグの値がありません、それがうまく動作するかどうかを意味します。
しかし、私はそれが働いていないパラメータとしてラグ値を渡す場合:
DataFrame dfnew=df.select(
org.apache.spark.sql.functions.lag(df.col("value"),df.col("lagno").over(org.apache.spark.sql.expressions.Window.orderBy(new1.col("value"))));
私は整数にCOL型のパラメータをキャストタイプする必要がありますか?
が..私は50以上を期待している私のlagno ..since場合と同じことをやった私はそこに取るものとするUDFを持つことができます任意の方法を50 conditions..Isを書き終わるかもしれませんlgno colの値と整数を返しますが、これが可能な場合は暫定的です。 – kre