- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在对一些稀疏向量进行聚类后,我需要在每个聚类中找到相交向量。为此,我尝试减少 MLlib 向量,如下例所示:
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.mllib.clustering.KMeans
import org.apache.spark.mllib.linalg.Vectors
//For Sparse Vector
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.util.MLUtils
import org.apache.spark.rdd.RDD
import org.apache.spark.mllib.linalg.{Vector, Vectors}
object Recommend {
def main(args: Array[String]) {
// set up environment
val conf = new SparkConf()
.setAppName("Test")
.set("spark.executor.memory", "2g")
val sc = new SparkContext(conf)
// Some vectors
val vLen = 1800
val sv11: Vector = Vectors.sparse(vLen,Seq( (100,1.0), (110,1.0), (120,1.0), (130, 1.0) ))
val sv12: Vector = Vectors.sparse(vLen,Seq( (100,1.0), (110,1.0), (120,1.0), (130, 1.0), (140, 1.0) ))
val sv13: Vector = Vectors.sparse(vLen,Seq( (100,1.0), (120,1.0), (130,1.0) ))
val sv14: Vector = Vectors.sparse(vLen,Seq( (110,1.0), (130, 1.0) ))
val sv15: Vector = Vectors.sparse(vLen,Seq( (140, 1.0) ))
val sv21: Vector = Vectors.sparse(vLen,Seq( (200,1.0), (210,1.0), (220,1.0), (230, 1.0) ))
val sv22: Vector = Vectors.sparse(vLen,Seq( (200,1.0), (210,1.0), (220,1.0), (230, 1.0), (240, 1.0) ))
val sv23: Vector = Vectors.sparse(vLen,Seq( (200,1.0), (220,1.0), (230,1.0) ))
val sv24: Vector = Vectors.sparse(vLen,Seq( (210,1.0), (230, 1.0) ))
val sv25: Vector = Vectors.sparse(vLen,Seq( (240, 1.0) ))
val sv31: Vector = Vectors.sparse(vLen,Seq( (300,1.0), (310,1.0), (320,1.0), (330, 1.0) ))
val sv32: Vector = Vectors.sparse(vLen,Seq( (300,1.0), (310,1.0), (320,1.0), (330, 1.0), (340, 1.0) ))
val sv33: Vector = Vectors.sparse(vLen,Seq( (300,1.0), (320,1.0), (330,1.0) ))
val sv34: Vector = Vectors.sparse(vLen,Seq( (310,1.0), (330, 1.0) ))
val sv35: Vector = Vectors.sparse(vLen,Seq( (340, 1.0) ))
val sparseData = sc.parallelize(Seq(
sv11, sv12, sv13, sv14, sv15,
sv21, sv22, sv23, sv24, sv25,
sv31, sv32, sv33, sv34, sv35
))
// Cluster the data into two classes using KMeans
val numClusters = 3
val numIterations = 20
test(numClusters, numIterations, sparseData)
}
def test(numClusters:Int, numIterations:Int,
data: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector]) = {
val clusters = KMeans.train(data, numClusters, numIterations)
val predictions = data.map(v => (clusters.predict(v), v) )
predictions.reduceByKey((v1, v2) => v1)
}
}
predictions.reduceByKey((v1, v2) => v1)
行导致错误:
value reduceByKey is not a member of org.apache.spark.rdd.RDD[(Int, org.apache.spark.mllib.linalg.Vector)]
这是什么原因呢?
最佳答案
正如您已经猜到的那样,您的代码应该添加了这个导入:
import org.apache.spark.SparkContext._
为什么?因为随之而来的是一些隐式转换,最重要的(对于您的情况)是 PairRDD
隐式转换。当你有一个 Tuple
的 RDD
时,Spark 会猜测 left side 可以被认为是一个键,因此会让你访问一个一些方便的转换或操作,例如 reduceByKey
。
问候,
关于vector - Spark : value reduceByKey is not a member,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28833926/
我一直试图让它工作一段时间,但每次都失败了。我有 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) ,但我
我是一名优秀的程序员,十分优秀!