I am trying to learn datasets in Spark. One thing I can't figure out is how to display a KeyValueGroupedDataset
, as show
doesn't work for it. Also, what is the equivalent of a map
for KeyValuGroupedDataSet
? I will appreciate if someone give some examples.
OK, I got the idea from examples given here and here. I am giving below a simple example that I've written.
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]|
+---+--------+
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With