2017-05-11 9 views
3

Ich versuche, Datensätze in Spark zu lernen. Eine Sache, die ich nicht herausfinden kann, ist, wie man eine KeyValueGroupedDataset anzeigt, wie show nicht dafür arbeitet. Und was entspricht einer map für KeyValuGroupedDataSet? Ich werde es schätzen, wenn jemand ein paar Beispiele gibt.Wie wird ein KeyValueGroupedDataset in Spark angezeigt?

+0

Können Sie ein reproduzierbares Beispiel zeigen? SO ist keine Tutorialseite. – mtoto

Antwort

4

OK, ich habe die Idee von den Beispielen here und here erhalten. Ich gebe unten ein einfaches Beispiel, das ich geschrieben habe.

val x = Seq(("a", 36), ("b", 33), ("c", 40), ("a", 38), ("c", 39)).toDS 
x: org.apache.spark.sql.Dataset[(String, Int)] = [_1: string, _2: int] 

val g = x.groupByKey(_._1) 
g: org.apache.spark.sql.KeyValueGroupedDataset[String,(String, Int)] = ... 

val z = g.mapGroups{case(k, iter) => (k, iter.map(x => x._2).toArray)} 
z: org.apache.spark.sql.Dataset[(String, Array[Int])] = [_1: string, _2: array<int>] 

z.show 
+---+--------+ 
| _1|  _2| 
+---+--------+ 
| c|[40, 39]| 
| b| [33]| 
| a|[36, 38]| 
+---+--------+ 
Verwandte Themen