- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
除了 RDDs 之外,我正在尝试学习更多地使用 DataFrames 和 DataSets。对于 RDD,我知道我可以做 someRDD.reduceByKey((x,y) => x + y)
,但我没有看到 Dataset 的那个函数。所以我决定写一篇。
someRdd.map(x => ((x.fromId,x.toId),1)).map(x => collection.mutable.Map(x)).reduce((x,y) => {
val result = mutable.HashMap.empty[(Long,Long),Int]
val keys = mutable.HashSet.empty[(Long,Long)]
y.keys.foreach(z => keys += z)
x.keys.foreach(z => keys += z)
for (elem <- keys) {
val s1 = if(x.contains(elem)) x(elem) else 0
val s2 = if(y.contains(elem)) y(elem) else 0
result(elem) = s1 + s2
}
result
})
Dataset
?也许 mapPartition 并在那里做?
Map
的编码器然而
最佳答案
我假设您的目标是将此习语转换为数据集:
rdd.map(x => (x.someKey, x.someField))
.reduceByKey(_ + _)
// => returning an RDD of (KeyType, FieldType)
ds.map(x => (x.someKey, x.someField)) // [1]
.groupByKey(_._1)
.reduceGroups((a, b) => (a._1, a._2 + b._2))
.map(_._2) // [2]
// => returning a Dataset of (KeyType, FieldType)
// Comments:
// [1] As far as I can see, having a map before groupByKey is required
// to end up with the proper type in reduceGroups. After all, we do
// not want to reduce over the original type, but the FieldType.
// [2] required since reduceGroups converts back to Dataset[(K, V)]
// not knowing that our V's are already key-value pairs.
groupByKey(_.someKey)
作为第一步。问题是使用
groupByKey
将类型从常规更改
Dataset
到
KeyValueGroupedDataset
.后者没有正规的
map
功能。相反,它提供了
mapGroups
,这看起来不太方便,因为它将值包装成
Iterator
并根据文档字符串执行 shuffle。
关于scala - 在 Spark 数据集中滚动你自己的 reduceByKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38383207/
我一直试图让它工作一段时间,但每次都失败了。我有 2 个文件。有一个名字列表: Name1 Name2 Name3 Name4 另一个是与几年中一年中每一天的名称关联的值列表: ['0.1,0.2,0
如果我有一个像这样的 K,V 对: (K, (v1, v2)) (K, (v3, v4)) 我怎样才能总结出我得到的值(k, (v1 + v3, v2 + v4)) ? 最佳答案 reduceByKe
我正在 Spark 上编写一个程序,我只是通过键进行聚合。该程序非常简单。我的输入数据只有 2GB,在设置为 local[2] 的多核服务器(8 核,32GB RAM)上运行。那就是使用两个内核进行并
我想使用 RDD 对 Tuple2 ,但是byte[]内容相同的s被认为是不同的值,因为它们的引用值不同。 我没有看到任何要传递给自定义比较器的东西。我可以转换 byte[]进入 String使用显式
嗨,我有代码只是从文档中获取字数。在生成输出之前,我还需要使用 map 来查找数据值。这是代码。 requests .filter(_.description.exists(_.leng
我的输入数据集看起来像 id1, 10, v1 id2, 9, v2 id2, 34, v3 id1, 6, v4 id1, 12, v5 id2, 2, v6 我想要输出 id1; 6,v4 | 1
我的问题类似于PySpark reduceByKey on multiple values但有一个关键的区别。我是 PySpark 的新手,所以我肯定错过了一些明显的东西。 我有一个具有以下结构的 R
我正在使用 Spark 1.5/1.6,我想在 DataFrame 中执行 reduceByKey 操作,我不想将 df 转换为 rdd。 每行看起来像,我有多个 id1 行。 id1, id2, s
我有一个 RDD,其中包含某些对象的计数,然后我在其上应用 reduceByKey(),对所有元素求和(如字数统计示例中所示)。我已将 reduceByKey 转换的输出保存到文本文件中,并且获得了每
为什么 Spark 强制从元组列表构建 RDD,以防进行 reducebykey 转换? reduce_rdd = sc.parallelize([{'k1': 1}, {'k2': 2}, {'k1
我有一个这样的rdd // Structure List[Tuple(x1, x2, value), Tuple(x1, x2, value)] data = [('23', '98', 34), (
我有一个像这样的 rdd: rdd = [((uid1), (product1, price1, date1)), ((uid1), (product2, price2, date2))
我确定这是非常简单的事情,但我没有找到与此相关的任何内容。 我的代码很简单: ... stream = stream.map(mapper) stream = stream.reduceByKey(r
我想对每个键的值列表进行分组,并且正在做这样的事情: sc.parallelize(Array(("red", "zero"), ("yellow", "one"), ("red", "two")))
我正在使用 Spark 版本 2.4.7-amzn-1 和 Scala 版本 2.11.12(OpenJDK 64 位服务器虚拟机,Java 1.8.0_302)开发 AWS EMR。 我想通过键减少
我正在将 spark 与 scala 一起使用,并且我有一个充满 tuple2 的 RDD,其中包含一个复杂对象作为键和一个 double 对象。如果对象相同,则目的是添加双倍(频率)。 为此,我将我
在对一些稀疏向量进行聚类后,我需要在每个聚类中找到相交向量。为此,我尝试减少 MLlib 向量,如下例所示: import org.apache.spark.SparkConf import org.
最近我有一个场景将数据存储在 keyValue Pair 中,并遇到了一个函数 reduceByKey(_ ++ _) .这更多是速记语法。我无法理解这实际上意味着什么。 例如:reduceBykey
作为我学习过程的一部分,我正在研究现有的 Spark 代码,我遇到了以下代码: enPages.map(lambda x: x.split(" "))\ .map(lambda x:
除了 RDDs 之外,我正在尝试学习更多地使用 DataFrames 和 DataSets。对于 RDD,我知道我可以做 someRDD.reduceByKey((x,y) => x + y) ,但我
我是一名优秀的程序员,十分优秀!