在spark cluster scala中保存随机林模型时出错
在将随机林模型保存到磁盘时,我遇到了以下在spark cluster scala中保存随机林模型时出错,scala,apache-spark,Scala,Apache Spark,在将随机林模型保存到磁盘时,我遇到了以下错误。 火花簇配置- spark软件包-spark-1.6.0-bin-hadoop2.6 模式-独立 我通过在每台从机中复制相同的数据来运行spark 命令-localModel.save(SlapSparkContext.get(),path) 模型经过训练,对试验数据进行了正确的预测 错误跟踪 java.lang.NullPointerException 位于org.apache.parquet.hadoop.ParquetFileWriter.me
错误。
火花簇配置-
spark软件包-spark-1.6.0-bin-hadoop2.6
模式-独立
我通过在每台从机中复制相同的数据来运行spark
命令-localModel.save(SlapSparkContext.get(),path)
模型经过训练,对试验数据进行了正确的预测
错误跟踪
java.lang.NullPointerException
位于org.apache.parquet.hadoop.ParquetFileWriter.mergeFooters(ParquetFileWriter.java:456)
位于org.apache.parquet.hadoop.ParquetFileWriter.writeMetadata文件(ParquetFileWriter.java:420)
位于org.apache.parquet.hadoop.ParquetOutputCommitter.writeMetadata文件(ParquetOutputCommitter.java:58)
位于org.apache.parquet.hadoop.ParquetOutputCommitter.commitJob(ParquetOutputCommitter.java:48)
位于org.apache.spark.sql.execution.datasources.BaseWriterContainer.commitJob(WriterContainer.scala:230)
在org.apache.spark.sql.execution.datasources.insertintoadoopfsrelation$$anonfun$run$1.apply$mcV$sp(insertintoadoopfsrelation.scala:151)
在org.apache.spark.sql.execution.datasources.insertintoadoopfsrelation$$anonfun$run$1.apply(insertintoadoopfsrelation.scala:108)
在org.apache.spark.sql.execution.datasources.insertintoadoopfsrelation$$anonfun$run$1.apply(insertintoadoopfsrelation.scala:108)
位于org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:56)
在org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelation.run(InsertIntoHadoopFsRelation.scala:108)
位于org.apache.spark.sql.executioncommand.sideEffectResult$lzycompute(commands.scala:58)
位于org.apache.spark.sql.execution.executeCommand.sideEffectResult(commands.scala:56)
位于org.apache.spark.sql.execution.executeCommand.doExecute(commands.scala:70)
位于org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:132)
位于org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$5.apply(SparkPlan.scala:130)
位于org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150)
位于org.apache.spark.sql.execution.SparkPlan.execute(SparkPlan.scala:130)
位于org.apache.spark.sql.execution.QueryExecution.toRdd$lzycompute(QueryExecution.scala:55)
位于org.apache.spark.sql.execution.QueryExecution.toRdd(QueryExecution.scala:55)
位于org.apache.spark.sql.execution.datasources.resolvedatasource$.apply(resolvedatasource.scala:256)
位于org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:148)
位于org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:139)
位于org.apache.spark.sql.DataFrameWriter.parquet(DataFrameWriter.scala:329)
在org.apache.spark.mllib.tree.model.TreeEnsembleModel$SaveLoadV1\u 0$.save(treeEnsembleModels.scala:453)上
位于org.apache.spark.mllib.tree.model.RandomForestModel.save(treeEnsembleModels.scala:65)
当您试图保存空数据帧时,会出现此错误。检查这行代码之前的步骤是否正在筛选/减少您的记录。如果将localModel.save(…)替换为localModel.count,是否会出现相同的错误?eliasah-我找不到任何方法名称计数。Im使用spark-mllib_2.10-1.6版,然后在运行算法之前对RF算法的馈送数据进行计数。它返回正确的RDD计数,不会引发任何错误。