以下は私のデータセットです。spark dataset API:他の集計とともに各ユーザーのデバイス使用状況の分布を確認
user,device,time_spent,video_start
userA,mob,5,1
userA,desk,5,2
userA,desk,5,3
userA,mob,5,2
userA,mob,5,2
userB,desk,5,2
userB,mob,5,2
userB,mob,5,2
userB,desk,5,2
私は、ユーザごとに集計を下回る知りたいです。
user total_time_spent device_distribution
userA 20 {mob:60%,desk:40%}
userB 20 {mob:50%,desk:50%}
スパーク2.0 APIをJavaで使用してこれを達成できる人がいますか?私はUserDefinedAggregateFunctionを使ってみましたが、グループ内でグループをサポートしていないため、デバイスごとに各ユーザーグループをグループ化して、各デバイスで費やされた時間を集計する必要があります。