Scala 如何在Spark中显示KeyValueGroupedDataset?
我正在努力学习Spark中的数据集。有一件事我搞不清楚,那就是如何显示Scala 如何在Spark中显示KeyValueGroupedDataset?,scala,apache-spark,dataset,rdd,Scala,Apache Spark,Dataset,Rdd,我正在努力学习Spark中的数据集。有一件事我搞不清楚,那就是如何显示KeyValueGroupedDataset,因为show对它不起作用。另外,对于KeyValueGroupedData集,映射的等价物是什么?如果有人举一些例子,我将不胜感激。好的,我从给出的例子中得到了这个想法。下面我给出一个我写的简单例子 val x = Seq(("a", 36), ("b", 33), ("c", 40), ("a", 38), ("c", 39)).toDS x: org.apache.spark.
KeyValueGroupedDataset
,因为show
对它不起作用。另外,对于KeyValueGroupedData集
,映射的等价物是什么?如果有人举一些例子,我将不胜感激。好的,我从给出的例子中得到了这个想法。下面我给出一个我写的简单例子
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]|
+---+--------+
valx=Seq(((“a”,36),(“b”,33),(“c”,40),(“a”,38),(“c”,39))。toDS
x:org.apache.spark.sql.Dataset[(String,Int)]=[[u1:String,[u2:Int]
val g=x.groupByKey(u._1)
g:org.apache.spark.sql.KeyValueGroupedDataset[String,(String,Int)]=。。。
valz=g.mapGroups{case(k,iter)=>(k,iter.map(x=>x.\u2.toArray)}
z:org.apache.spark.sql.Dataset[(字符串,数组[Int])]=[\u1:String,\u2:Array]
z、 展示
+---+--------+
| _1| _2|
+---+--------+
|c |[40,39]|
|b |[33]|
|a |[36,38]|
+---+--------+
您能给出一个可复制的示例吗?所以这不是一个教程网站。