1

Spark Structured Streamingを使用して、指定されたウィンドウ期間に収まるデータをグループ化しようとしています。日付列に返され何Spark Structured Streamingの日付列のウィンドウ操作

2017年7月20日夜6時27分45秒

:rawProfilesから

val profiles = rawProfiles.select("*") 
    .groupBy(window($"date", "10 minutes", "5 minutes").alias("date"), $"id", $"name") 
    .agg(sum("value").alias("value")) 
    .join(url.value, Seq("url"), "left") 
    .where("value > 20") 
    .as[profileRecord] 

日付の書式は、このような文字列でありますウィンドウ集約の後に次のようになります。

[0,554c749fb8a00,554c76dbed000]

私はそれにどうしたらいいのか分かりません。誰にもアイデアはありますか?

+0

sparkが解釈する前に日付の列をキャストします。 – Gyan

+0

これまでにキャストしようとしましたが動作しませんでした。私はその後、フォーマットを指定することによってudfを使って日付に変更しようとしました。まだ運がありません。私は他に何をしようとしているのか分からない。 –

答えて

1

次のように日付フィールドを再フォーマットすることができます。

rawProfiles.select(<your other fields>,to_date(unix_timestamp($"date").cast(DataTypes.TimestampType)).as("date"))).groupBy(window($"date", "10 minutes", "5 minutes").alias("date"), $"id", $"name") 
.agg(sum("value").alias("value")) 
.join(url.value, Seq("url"), "left") 
.where("value > 20") 
.as[profileRecord] 
関連する問題