の値でグループを使用してGROUPBY foldLeftを(火傷)のようなデータがあります:倍
pid recom-pid
1 1
1 2
1 3
2 1
2 2
2 4
2 5
はそれを行う必要があります。
pid, recommendations
1 2,3
2 1,4,5
意味は2列目からの自己を無視し、そして作りますコンマ区切りの文字列にしてください。そのタブ区切りデータ
はのバリエーションを試してみましたが、火傷0.10.0とScalaの2.10を使用して2.5.3をカスケード接続foldLeft
.groupBy('productId) {
_.foldLeft(('prodReco) -> 'prodsR)("") {
(s: String, s2: String) =>
{
println(" s " + s + ", s2 :" + s2 + "; pid :" + productId + ".")
if (productId.equals(s2)) {
s
} else {
s + "," + s2;
}
}
}
}
でのProductIDを参照する方法がわかりません。怒りの答えが必要です。私はスカラーでデータを操作する方法を知っています。私はちょうど鱗を引くことでグループの中で列を保持する方法を疑問に思っているし、条件付きで折り畳みを左にするなどの方法でフィルタリングされた出力を得る方法を使用します。完全に動作するサンプルについて
ちょうどgroupBy
と
map
はあなたが望むものを達成するために十分なはずです
なぜidで自己のペアと、グループを削除するには、ファイラーを使用していませんか? – roterl
はい、うまく動作します。ただグループをスケーリングするときに何かを欲しかったので、同じフェーズでフィルタリングすることができます – tgkprog