を捨てる:Scalaのスパーク - 私は、次のマップを持って空のキー
val pairs = lines.map(l => (if (l.split(",")(1).toInt < 60) { "rest" } else if (l.split(",")(1).toInt > 110) { "sport" }, 10)).reduceByKeyAndWindow((a:Int, b:Int) => (a+b), Seconds(12))
誰かのHRは60怒鳴るときに110をスポーツとして分類されている上、基本的に、それは、残りの部分に分類されます。タプルの2番目の変数は、その人が10分間それをやっていることを表します。
ここで、これは60から110までの値の空のキーをマップします。私が望むのは、それらを完全に破棄することです。それはどのように達成可能ですか?
ので
("rest", 30)
("sport", 120)
((),10)
から私は((),10)
をフィルタリングしようとしています。 試しました
pairs.filter{case (key, value) => key.length < 3} //error: value length is not a member of Any
pairs.filter(_._1 != "") //no error, just still keeps the empty keys, too
どれも動作していません。
フラットマップはあなたの友人です。 – maasg
あなたは細かいことが分かりますか? :) –
申し訳ありません、電話で。 Scalaのフラットマップをここで検索してください。これは以前に議論されている。 – maasg