当前位置: 首页 > 知识库问答 >
问题:

Apache Spark k-均值聚类-RDD用于输入

耿运浩
2023-03-14
org.apache.spark.rdd.RDD[(Long, Seq[org.apache.spark.mllib.linalg.Vector])]

该向量包含X、Y坐标,即成对的双打。我想为每个用户ID标识坐标集群,所以我在RDD上进行映射,并尝试为每个组运行k-means:

val userClusters = userCoordVectors.map {
  case (userId, coords) =>
    val clusters = 4
    val iterations = 30
    // Need to convert coords to RDD for input into K-Means
    val parsedData = sc.parallelize(coords)

    // Apply k-means
    val model = KMeans.train(parsedData, clusters, iterations)
    ...
    etc
}

但是当我运行这个时,我从一行中得到了一个NPE:

val parsedData = sc.parallelize(coords)

问题是,我必须将coords转换为RDD来进行K-Means操作。

 val userClusters = sc.parallelize(userCoordVectors.collect.map {
 ...
 })

共有1个答案

鞠乐
2023-03-14

不能在RDD运算符的任何函数中使用SparkContext或RDD。它们不能序列化并通过网络发送。

Matei Zaharia在这里回答:http://apache-spark-user-list.1001560.n3.nabble.com/can-we-get-a-spark-context-inside-a-mapper-td9605.html

您目前不能在Spark任务中使用SparkContext,因此在这种情况下,您必须调用某种本地K-means库。您可以尝试使用的一个示例是Weka(http://www.cs.waikato.ac.nz/ml/Weka/)。然后,您可以使用sparkcontext.wholetextfiles将文本文件作为字符串的RDD加载,并对每个文本文件调用Weka。

 类似资料:
  • $k$均值聚类算法(k-means clustering algorithm) 在聚类的问题中,我们得到了一组训练样本集 ${x^{(1)},...,x^{(m)}}$,然后想要把这些样本划分成若干个相关的“类群(clusters)”。其中的 $x^{(i)}\in R^n$,而并未给出分类标签 $y^{(i)}$ 。所以这就是一个无监督学习的问题了。 $K$ 均值聚类算法如下所示: 随机初始化(

  • 目标 在本章中,我们将了解K-Means聚类的概念,其工作原理等。 理论 我们将用一个常用的例子来处理这个问题。 T-shirt尺寸问题 考虑一家公司,该公司将向市场发布新型号的T恤。显然,他们将不得不制造不同尺寸的模型,以满足各种规模的人们的需求。因此,该公司会记录人们的身高和体重数据,并将其绘制到图形上,如下所示: 公司无法制作所有尺寸的T恤。取而代之的是,他们将人划分为小,中和大,并仅制造这

  • 聚类 聚类,简单来说,就是将一个庞杂数据集中具有相似特征的数据自动归类到一起,称为一个簇,簇内的对象越相似,聚类的效果越好。它是一种无监督的学习(Unsupervised Learning)方法,不需要预先标注好的训练集。聚类与分类最大的区别就是分类的目标事先已知,例如猫狗识别,你在分类之前已经预先知道要将它分为猫、狗两个种类;而在你聚类之前,你对你的目标是未知的,同样以动物为例,对于一个动物集来

  • 我使用Math.random(我必须使用这个)得到随机数,试图找到平均值,但它总是输出错误的平均值,输出的随机数大致相同,我还必须使用switch语句,因为它是我的任务的一部分,谢谢。 我的目标是打印出随机数,并求出这些数字的总平均值,然而它并不像它应该的那样工作,因为它打印出了一个错误的值。我是一个新的java和我第一次使用这个网站,抱歉所有的错误,我犯了,非常感谢。

  • 我有一个标题和两个坐标x和y的数据集。我只是好奇bufferedReader在Java中是如何工作的,下面的代码是我从Google获得的,用于在字符串变量中分别获得头和数据。 在使用R进行统计时,我们需要纠正一个行代码,其中我们提到Header=True,它自动从第2行开始读取。 谢谢--

  • 本文向大家介绍Python聚类算法之基本K均值实例详解,包括了Python聚类算法之基本K均值实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python聚类算法之基本K均值运算技巧。分享给大家供大家参考,具体如下: 基本K均值 :选择 K 个初始质心,其中 K 是用户指定的参数,即所期望的簇的个数。每次循环中,每个点被指派到最近的质心,指派到同一个质心的点集构成一个。然后,根据指