ПФ
Size: a a a
ПФ
ПФ
K
GP
AZ
GP
ПФ
ПФ
K
ПФ
ПФ
ПФ
val zlogMaxed = zlВот для этого пришлось приделать два кейс-класса с энкодерами
.groupByKey(z => Grouping(z.cc, z.p, z.u))
.reduceGroups((a, b) => if (a.ci - b.ci >= 0) a else b)
.map {
case (grouping, flat) =>
N(
grouping.cc,
grouping.p,
grouping.u,
flat.ci,
flat.di,
flat.a
)
}
ПФ
ПФ
AZ
val zlogMaxed = zlВот для этого пришлось приделать два кейс-класса с энкодерами
.groupByKey(z => Grouping(z.cc, z.p, z.u))
.reduceGroups((a, b) => if (a.ci - b.ci >= 0) a else b)
.map {
case (grouping, flat) =>
N(
grouping.cc,
grouping.p,
grouping.u,
flat.ci,
flat.di,
flat.a
)
}
GP
val zlogMaxed = zlВот для этого пришлось приделать два кейс-класса с энкодерами
.groupByKey(z => Grouping(z.cc, z.p, z.u))
.reduceGroups((a, b) => if (a.ci - b.ci >= 0) a else b)
.map {
case (grouping, flat) =>
N(
grouping.cc,
grouping.p,
grouping.u,
flat.ci,
flat.di,
flat.a
)
}
GP
GP
scala> val data = Array(("a", 1, 2d), ("a", 2, 3d), ("b", 3, 4d), ("b", 4, 5d), ("c", 5, 6d), ("c", 6, 7d), ("e", 0, 0d))
data: Array[(String, Int, Double)] = Array((a,1,2.0), (a,2,3.0), (b,3,4.0), (b,4,5.0), (c,5,6.0), (c,6,7.0), (e,0,0.0))
scala> val rdd = sc.parallelize(data)
rdd: org.apache.spark.rdd.RDD[(String, Int, Double)] = ParallelCollectionRDD[1] at parallelize at <console>:29
scala> val dataset = rdd.toDS()
dataset: org.apache.spark.sql.Dataset[(String, Int, Double)] = [_1: string, _2: int ... 1 more field]
scala> dataset.groupByKey(value => value._1 -> value._2)
res11: org.apache.spark.sql.KeyValueGroupedDataset[(String, Int),(String, Int, Double)] = KeyValueGroupedDataset: [key: [_1: string, _2: int], value: [_1: string, _2: int ... 1 more field(s)]]
GP
K