【问题标题】:k-means clustering using Apache spark Zeppelin使用 Apache spark Zeppelin 进行 k-means 聚类
【发布时间】:2017-11-01 10:28:47
【问题描述】:

我有一个包含三列(字符串)的 csv 文件,并且我有这个用于在 Zeppelin 上进行聚类的代码

这是代码:

case class kmeansScore(k: String, score: String,j: String  )
val rawData = sc.textFile("/resources/data/v1.csv")
rawData.map(_.split(',').last).countByValue().toSeq.sortBy(_._2).reverse.foreach(println)

import org.apache.spark.mllib.linalg._
val labelsAndData = rawData.zipWithIndex.flatMap {
  case (line,index) =>
    if (index == 0) {
      None
    } else {
      val buffer = line.split(',').toBuffer
      buffer.remove(1, 4)
      val label = buffer.remove(buffer.length-1)
      val vector = Vectors.dense(buffer.map(_.toDouble).toArray)
      Some((label,vector))
    }
}
import org.apache.spark.mllib.clustering._   
def distance(a: Vector, b: Vector) = math.sqrt(a.toArray.zip(b.toArray).map(p => p._1 - p._2).map(d => d * d).sum)
def distToCentroid(datum: Vector, model: KMeansModel) = {
  val cluster = model.predict(datum)
  val centroid = model.clusterCenters(cluster)
  distance(centroid, datum)
}

import org.apache.spark.rdd._
val dataAsArray = labelsAndData.values.map(_.toArray).cache()
val dataAsArray.first().length

但是我收到了这个错误:

org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 90.0 failed 1 times, most recent failure: Lost task 0.0 in stage 90.0 (TID 138, localhost): java.lang.IndexOutOfBoundsException: 1
    at scala.collection.mutable.ArrayBuffer.remove(ArrayBuffer.scala:158)

有什么问题?我正在 https://my.datascientistworkbench.com/tools/zeppelin-notebook/ 中开发 Zeppelin

【问题讨论】:

  • 你提供的那个链接需要登录
  • @MattiLyra 是的,我有一个帐户,有什么意义?
  • 该链接对这里没有帐户的任何人有什么用处。我们应该看看笔记本吗?

标签: apache-spark cluster-analysis apache-zeppelin


【解决方案1】:

了解如何读取堆栈跟踪。他们会告诉你哪里错误在哪里。如果没有适当的堆栈跟踪,我们只能推测。

具体来说,你的代码中的失败了?

我的盲目猜测是最后一行是空的,然后“删除”失败并出现此异常。

您的代码在我看来效率很低。我只能建议使用其他工具对其进行基准测试,包括非火花工具。我知道人们喜欢所有“实用”的东西,比如地图和拉链。但是你会惊讶于在做数值运算时这会变得多么慢。

【讨论】:

    猜你喜欢
    • 2015-01-16
    • 2016-07-28
    • 2016-12-16
    • 2014-12-31
    • 2017-03-30
    • 2012-03-24
    • 2011-06-06
    • 2017-11-20
    • 1970-01-01
    相关资源
    最近更新 更多