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

流式K-means Spark Scala:获取输入字符串的java.lang.NumberFormatException

桑鸿志
2023-03-14

当我从包含双值的目录中读取CSV数据并对其应用流式K均值模型时,

//CSV文件

name:=“应用程序名称”

版本:=“0.1”

scalaVersion:=“2.11.12”
val sparkVersion=“2.3.1”

val trainingData = ssc.textFileStream ("directory path") 
                      .map(x=>x.toDouble)
                      .map(x=>Vectors.dense(x))
// applying Streaming kmeans model
val model = new StreamingKMeans()
  .setK(numClusters)
  .setDecayFactor(1.0)
  .setRandomCenters(numDimensions, 0.0)
model.trainOn(trainingData)

我得到以下错误:

18/07/24 11:20:04错误执行器:stage 2.0(TID 1)任务0.0中出现异常java.lang.NumberFormatException:输入字符串:“40.7473,-73.9857”(Sun.Misc.FloatingDecimal.ReadJavaFormatString(FloatingDecimal.java:2043)(Sun.Misc.FloatingDecimal.ParseDouble(FloatingDecimal.java:110)(java.lang.Double.ParseDouble(Double.java:538)(Scala.Collection.Immutable.StringLike$Class.ToDouble(StringOps.Scala:29)。)在UBU$$AnonFun$1。Apply(uberclass.scala:305)在UBU$$AnonFun$1。Apply(uberclass.scala:305)在Scala.Collection.Iterator$$Anon$11。Next(iterator.scala:410)在Scala.Collection.Iterator$$Anon$11。Next(iterator.scala:410)在Scala.Collection.Iterator$$Anon$11。Next(iterator.scala:410)在org.apache.spark.util.Collection.ExternalSorter.Insertall(ExternalSorter.scala:193)在org.apache.spark.Shuffle.SortShuffleWriter.在org.apache.spark.scheduler.shufflemaptask.runtask(ShuffleMapT)上写入(sortshufflewriter.scala:63ask.scala:96)在org.apache.spark.scheduler.shufflemaptask.scala:53)在org.apache.spark.scheduler.task.run(task.scala:109)在org.apache.spark.executor.executor$taskrunner.run(executor.scala:345)在java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.1149)在java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.624)在java.lang.thread.run(thread.java:748)线程“streaming-job-executor-0”java.lang.error:java.lang.interruptedexception在java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1155)在java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:624)在java.lang.thread.run(thread.java:748)

谁能帮忙吗?

共有1个答案

俞学
2023-03-14

有个维度问题。传递给流式K-means模型的vector和numDimension的维度应该相同。

 类似资料:
  • 我是Java的新手,我正在尝试从一个多行的输入中获取一个字符串。 例如,一个字符串=“the quick brown fox jumps over the lazy dog.the quick brown fox jumps over the lazy dog.the quick fox jumps over the lazy dog.”输入如下: 敏捷的棕色狐狸跳过懒惰的狗。 敏捷的棕色狐狸跳过

  • 问题内容: 我正在制作一个应用程序,在某个时候我需要用户选择一种颜色,但是不仅有50个radioButtons,我想知道是否有可能从文本字段或其他内容中真正获得他们想要的颜色。 问题答案: 仅仅制作一个JComboBox或类似的东西会更容易吗? 但是要回答您的问题:是的,有可能。我将提供一段代码,您可以将其用作入门(假设您仍然希望为字符串上色)

  • 我有几个输出侦听器正在实现。它可以是写到stdout或文件的,也可以是写到内存或任何其他输出目标;因此,我在方法中指定作为(an)参数。 现在,我收到了。在这里向流写入的最佳方式是什么? 我应该只使用吗?我可以给它字节,但如果目标流是字符流,那么它会自动转换吗? 我需要用这里的一些桥流来代替吗?

  • 问题内容: 我有几个正在实现OutputStream的输出侦听器。它可以是写到stdout或文件的PrintStream,也可以写到内存或任何其他输出目标。因此,我在方法中将OutputStream指定为参数。 现在,我已经收到了字符串。在此处写入流的最佳方法是什么? 我应该只使用Writer.write(message.getBytes())吗?我可以给它提供字节,但是如果目标流是字符流,那么它

  • 主要内容:关于 Python 2.xinput() 是 Python 的内置函数,用于从控制台读取用户输入的内容。input() 函数总是以字符串的形式来处理用户输入的内容,所以用户输入的内容可以包含任何字符。 input() 函数的用法为: str = input(tipmsg) 说明: str 表示一个字符串类型的变量,input 会将读取到的字符串放入 str 中。 tipmsg 表示提示信息,它会显示在控制台上,告诉用户应该

  • 问题内容: 我在JSF支持bean中具有以下方法: 我在数据表中显示此: 但是我得到以下异常: 它是怎么引起的,我该如何解决?\ 问题答案: 所以, 导致此: 您是否正在运行您认为正在运行的代码?的参与在堆栈跟踪指示是 实际上 像一个数组。数组值只能通过像整数索引来获得,但你用字符串访问它作为导致了这一例外。 确保返回,而不是,并且已将的正确版本声明为托管Bean。