1
私はデータセットを持って スパークネストされたforeachの
{ "TS": "1461768452"、 "IP": "10.10.144.209"、 "ID": "KA4aIkFB"、 "DEVICE": "タブレット" 、「HOST」:「krxd.net」}私はすべてのレコード(ID、デバイス)によって、以下の
グループを実行しようとしていて、各グループのためには、最新のタイムスタンプを取得します。 次に、IDを区別します。
Scalaでこれを行う方法を教えてもらえますか? 私は豚で知っているforeachループをネストすることができます。スパークに相当するものはありますか?
これは何かが、最後の2つのレコードが間違っているように私はこれまで
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val df = sqlContext1.read.json("sample.json")
val df2 = df1.select(df1("ID"),df1("DEVICE"),df1("TS"))
val res= df2.rdd.groupBy (x => (x(0),x(1))).mapValues (x=> x.foreach { x => x(2)})
val res1 = res.mapValues(_.maxBy(_.get(2)))
が見えるなかったものです。
簡単で説得力のある回答です。同じ機能をJavaでも使えますか?なぜなら、JavaでdropDuplicates()関数について聞いたことはありませんでした。 – user4342532
javaのdropDuplicates APIを確認できます。https://spark.apache.org/docs/1.6.2/api/java/org/apache/spark/sql/DataFrame.html#dropDuplicates(java.lang.String []) – linbojin
このLinboありがとう。できます! –