Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Scala/Spark ClassCastException当访问列表元素时_Java_Scala_Apache Spark_Classcastexception - Fatal编程技术网

Java Scala/Spark ClassCastException当访问列表元素时

Java Scala/Spark ClassCastException当访问列表元素时,java,scala,apache-spark,classcastexception,Java,Scala,Apache Spark,Classcastexception,我是spark/scala的新手,正在尝试处理方法返回的数据(特别是平均值的子集) def getRDDForTask(sc: SparkContext, taskName: String, attributeName: String, numberOfPoints: Int): RDD[List[BigDecimal]] = { val Stats=getRDDForTask(sc, "example_name", "memory_usage", 200) val initLis

我是spark/scala的新手,正在尝试处理方法返回的数据(特别是平均值的子集)

def getRDDForTask(sc: SparkContext, taskName: String, attributeName: String, numberOfPoints: Int): RDD[List[BigDecimal]] = { 

  val Stats=getRDDForTask(sc, "example_name", "memory_usage", 200) 
  val initList=Stats.toArray.head
  val initValue=initList.head

}
调用Stats.toArray.head返回:
res100:List[BigDecimal]=List(142950520500068400001210800640)

但是,当我调用
initList.head
访问列表的第一个元素时,我得到一个错误。当我尝试对列表的值运行任何操作(例如
foreach
map
)时,会出现此消息。我尝试从头开始创建
List[BigDecimal]
,并且可以对其执行所有标准操作。我错过了什么明显的东西吗? 具体错误是:

java.lang.ClassCastException: scala.math.BigInt cannot be cast to scala.math.BigDecimal
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:42)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:47)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:49)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:51)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:53)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:55)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:57)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:59)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:61)
    at $iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:63)
    at $iwC$$iwC$$iwC$$iwC.<init>(<console>:65)
    at $iwC$$iwC$$iwC.<init>(<console>:67)
    at $iwC$$iwC.<init>(<console>:69)
    at $iwC.<init>(<console>:71)
    at <init>(<console>:73)
    at .<init>(<console>:77)
    at .<clinit>(<console>)
    at .<init>(<console>:7)
    at .<clinit>(<console>)
    at $print(<console>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:622)
    at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065)
    at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1338)
    at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840)
    at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:871)
    at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:819)
    at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:856)
    at org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:901)
    at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:813)
    at org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:656)
    at org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:664)
    at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$loop(SparkILoop.scala:669)
    at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:996)
    at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:944)
    at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:944)
    at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
    at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:944)
    at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1058)
    at org.apache.spark.repl.Main$.main(Main.scala:31)
    at org.apache.spark.repl.Main.main(Main.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:622)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:569)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
java.lang.ClassCastException:scala.math.BigInt不能转换为scala.math.BigDecimal
在$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:42)
在$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:47)
在$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:49)
在$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:51)
在$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:53)
在$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:55)
$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:57)
在$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:59)
在$iwC$$iwC$$iwC$$iwC$$iwC$$iwC。(:61)
在$iwC$$iwC$$iwC$$iwC$$iwC。(:63)
在$iwC$$iwC$$iwC$$iwC。(:65)
在$iwC$$iwC$$iwC。(:67)
在$iwC$$iwC。(:69)
$iwC。(:71)
在(:73)
在。(:77)
在
在。(:7)
在
$print()
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:622)
位于org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1065)
位于org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1338)
在org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:840)
在org.apache.spark.repl.SparkIMain.exploration上(SparkIMain.scala:871)
在org.apache.spark.repl.SparkIMain.exploration上(SparkIMain.scala:819)
在org.apache.spark.repl.SparkILoop.really上解释$1(SparkILoop.scala:856)
位于org.apache.spark.repl.SparkILoop.interpretatingstartingwith(SparkILoop.scala:901)
位于org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:813)
位于org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:656)
位于org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:664)
位于org.apache.spark.repl.sparkloop.org$apache$spark$repl$sparkloop$$loop(sparkloop.scala:669)
在org.apache.spark.repl.sparkilop$$anonfun$org$apache$spark$repl$sparkilop$$process$1.apply$mcZ$sp(sparkilop.scala:996)
在org.apache.spark.repl.sparkilop$$anonfun$org$apache$spark$repl$sparkilop$$process$1.apply(sparkilop.scala:944)
在org.apache.spark.repl.sparkilop$$anonfun$org$apache$spark$repl$sparkilop$$process$1.apply(sparkilop.scala:944)
位于scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
位于org.apache.spark.repl.sparkloop.org$apache$spark$repl$sparkloop$$process(sparkloop.scala:944)
位于org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1058)
位于org.apache.spark.repl.Main$.Main(Main.scala:31)
位于org.apache.spark.repl.Main.Main(Main.scala)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:622)
位于org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:569)
位于org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166)
位于org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189)
位于org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110)
位于org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

您可以发布一个更完整的示例吗?现在,你甚至没有告诉我们什么是
Stats
。你在REPL上运行什么代码?对不起,Stats是getRDDForTask(sc,“示例任务”,“内存使用”,200)的返回值。我没有看到它。很明显,有些指令试图将带有bigint的结构强制转换为带有bigdecimal的结构,但是您显示的代码基本上没有涉及任何类型。再多展示一点。还有,你有哪个版本的Spark?toArray不赞成使用collect()。@user3784910从您的代码中我看到,您有无条件递归。有了它,您应该会得到堆栈溢出错误,而不会有机会接近第二条和第三条语句。也许你能给我们真正的代码?