ルックアップテーブルデータを持つDataFrameがあります。毎時ごとにこのテーブルにエントリがあります。現在の時間までのレコードの総数はどのように計算されますか?例えばルックアップテーブルから現在の時間までのレコードの総数を取得する方法
私のDFデータ
+----+-----+
|hour|count|
+----+-----+
|0.00| 10|
|1.00| 5|
|2.00| 10|
|3.00| 15|
|4.00| 10|
|5.00| 10|
+----+-----+
私は、入力として "4.00" を渡すと、それは4時間までの合計数を返す必要がありますが。
予想される出力は次のようになります。
Total count
50
サンプルコードは、私が試した:
val df = Seq(("0.00", "10"),
("1.00", "15")).toDF("hour", "reccount")
df.show
df.printSchema
df.registerTempTable("erv")
//sqlContext.sql("select hour,reccount from erv").show
sqlContext.sql("select sum(reccount) over(partition by hour) as running_total from erv").show
が、私は以下のエラーを取得しています。
スレッドの例外 "メイン" java.lang.RuntimeException:[1.26]失敗:)時間単位でパーティション(上 ``組合 '' 期待が、 `(」が見つかり
選択合計(RECCOUNT) ERV
からrunning_totalように私はまた、以下のようなウィンドウ機能を試してみましたが、私はそのはHiveContextを作成していないローカルHiveContextを作成しようとすると、その期待HiveContextは、作成する必要があります。
窓関数のコード:
val wSpec = Window.partitionBy("hour").orderBy("hour").rowsBetween(Long.MinValue, 0)
df.withColumn("cumSum", sum(df("reccount")).over(wSpec)).show()
@TzachZoharを、見てください。 – Shankar
@Shankar:あなたが使った上記のアプローチは何ですか?このクエリについては何でしょうか.. 'select sum(reccount)from erv where hour = 4' –
@RamPrasadG:ありがとう、これは働いています.. – Shankar