【问题标题】:Error while saving Random Forest Model in spark cluster scala在火花簇scala中保存随机森林模型时出错
【发布时间】:2016-07-23 04:53:18
【问题描述】:

我在将随机森林模型保存到磁盘时收到以下 error。 火花集群配置- 火花包-spark-1.6.0-bin-hadoop2.6 模式 - 独立

我通过在每台从机中复制相同的数据来运行 spark

command - localModel.save(SlapSparkContext.get(), path) 模型已经过训练,可以正确预测测试数据

error trace

java.lang.NullPointerException 在 org.apache.parquet.hadoop.ParquetFileWriter.mergeFooters(ParquetFileWriter.java:456) 在 org.apache.parquet.hadoop.ParquetFileWriter.writeMetadataFile(ParquetFileWriter.java:420) 在 org.apache.parquet.hadoop.ParquetOutputCommitter.writeMetaDataFile(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.InsertIntoHadoopFsRelation$$anonfun$run$1.apply$mcV$sp(InsertIntoHadoopFsRelation.scala:151) 在 org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelation$$anonfun$run$1.apply(InsertIntoHadoopFsRelation.scala:108) 在 org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelation$$anonfun$run$1.apply(InsertIntoHadoopFsRelation.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.execution.ExecutedCommand.sideEffectResult$lzycompute(commands.scala:58) 在 org.apache.spark.sql.execution.ExecutedCommand.sideEffectResult(commands.scala:56) 在 org.apache.spark.sql.execution.ExecutedCommand.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.ResolvedDataSource$.apply(ResolvedDataSource.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_0$.save(treeEnsembleModels.scala:453) 在 org.apache.spark.mllib.tree.model.RandomForestModel.save(treeEnsembleModels.scala:65)

【问题讨论】:

  • 如果将 localModel.save(...) 替换为 localModel.count 会出现同样的错误吗?
  • eliasah - 我无法找到任何方法名称计数。我正在使用 spark-mllib_2.10 -version 1.6
  • 然后在运行算法之前对您的供稿数据执行 RF 算法计数
  • 它正在返回正确的 RDD 计数,它不会引发任何错误。

标签: scala apache-spark


【解决方案1】:

当您尝试保存 Empty DataFrame 时出现错误。检查这行代码之前的步骤是否正在过滤/减少您的记录。

【讨论】:

    猜你喜欢
    • 2018-11-05
    • 2016-10-26
    • 2018-06-03
    • 2020-01-16
    • 2014-01-06
    • 2020-02-25
    • 2019-07-10
    • 2017-08-11
    • 2016-09-16
    相关资源
    最近更新 更多