なぜこれが機能しないのかわかりません。私のケースクラスにマッピングするのではなく、タプルを返すだけでうまくいきます。それ以外の場合、私は以下のエラーが表示されます。データセットからケースクラスにマッピングするときのエラー
case class WinRate(name: String, played: Int, wins: Int, losses: Int)
val winners = df.select($"winning_heroes").map(row => {
row.getList[String](0).toList().map(x => {
WinRate(x, 1, 1, 0)
})
}).flatMap(x => x)
エラー:メソッドの適用に十分な引数がありません。(n:Int)文字列in trait LinearSeqOptimized。未指定の値パラメータn。
あなたは何をしようとしていますか? 'map'と' flatMap'を行うことは非常にうまくできているようです。最近、Spark SQLがどれくらいの頻度で提供しているのか(標準関数を参照) –
私のデータベースには文字列の配列フィールドがあります。だから、私は文字列を引き出し、それらのそれぞれについてタプルを作成しています(上のケースクラスを実行しようとしています)。それから私は勝利を得るために.groupByと合計をしています。私はタプルを使って作業していますが、ちょうどケースクラスでそれをやりたかったのは、少し読みやすく/読むのが簡単だからです。私はスカラーにはかなり新しいので、おそらくそれを行うより良い/より慣用的な方法があります。 –
'df.printSchema'をインクルードして質問を簡単に答えるように編集します。ありがとう。 –