[ 
https://issues.apache.org/jira/browse/SYSTEMML-597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Dusenberry resolved SYSTEMML-597.
--------------------------------------
       Resolution: Fixed
    Fix Version/s: SystemML 0.10

Fixed in SYSTEMML-576.

> Random Forest Execution Fails
> -----------------------------
>
>                 Key: SYSTEMML-597
>                 URL: https://issues.apache.org/jira/browse/SYSTEMML-597
>             Project: SystemML
>          Issue Type: Bug
>    Affects Versions: SystemML 0.9
>            Reporter: Mike Dusenberry
>            Assignee: Arvind Surve
>             Fix For: SystemML 0.10
>
>
> An issue was raised with running our random forest algorithm on SystemML 0.9 
> via MLContext with Scala Spark on a cluster.  The following example runs on a 
> local machine (on bleeding-edge), but not on the given cluster.
> Notice the error involves {{distinct_values_offset}}.  That variable should 
> only be used if `num_cat_features` is > 0, but based on line 106 
> (https://github.com/apache/incubator-systemml/blob/master/scripts/algorithms/random-forest.dml#L106)
>  the else clause is used (because no R file), and {{num_cat_features}} is set 
> to 0.  Also, based on the above line 106 (and no R file) that variable should 
> never be initialized either.
> Code:
> {code}
> // Create a SystemML context
> import org.apache.sysml.api.MLContext
> val ml = new MLContext(sc)
> // Generate random data
> val X = sc.parallelize(Seq((0.3, 0.1, 0.5), (0.3, 1.0, 0.6), (0.7, 0.8, 1.0), 
> (0.3, 0.1, 0.1), (0.5, 0.8, 0.5))).toDF
> val Y = sc.parallelize(Seq((1, 0, 0), (0, 1, 0), (0, 0, 1), (0, 1, 0), (1, 0, 
> 0))).toDF
> // Register inputs & outputs
> ml.reset()
> ml.registerInput("X", X)
> ml.registerInput("Y_bin", Y)
> ml.registerOutput("M")
> // Run the script
> val nargs = Map("X" -> "", "Y" -> "", "M" -> "")
> val outputs = 
> ml.execute("/home/biadmin/spark-enablement/installs/SystemML/algorithms/random-forest.dml",
>  nargs)
> val M = outputs.getDF(sqlContext, "M")
> {code}
> Output:
> {code}
> import org.apache.sysml.api.MLContext
> ml: org.apache.sysml.api.MLContext = org.apache.sysml.api.MLContext@677d8e36
> X: org.apache.spark.sql.DataFrame = [_1: double, _2: double, _3: double]
> Y: org.apache.spark.sql.DataFrame = [_1: int, _2: int, _3: int]
> nargs: scala.collection.immutable.Map[String,String] = Map(X -> "", Y -> "", 
> M -> "")
> org.apache.sysml.runtime.DMLRuntimeException: 
> org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error in while 
> program block generated from while statement block between lines 263 and 1167 
> -- Error evaluating while program block.
>       at 
> org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:153)
>       at 
> org.apache.sysml.api.MLContext.executeUsingSimplifiedCompilationChain(MLContext.java:1337)
>       at 
> org.apache.sysml.api.MLContext.compileAndExecuteScript(MLContext.java:1203)
>       at 
> org.apache.sysml.api.MLContext.compileAndExecuteScript(MLContext.java:1149)
>       at org.apache.sysml.api.MLContext.execute(MLContext.java:631)
>       at org.apache.sysml.api.MLContext.execute(MLContext.java:666)
>       at org.apache.sysml.api.MLContext.execute(MLContext.java:679)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:79)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:84)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:86)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:88)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:90)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:92)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:94)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:96)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:98)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:100)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:102)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:104)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:106)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:108)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:110)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:112)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:114)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:116)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:118)
>       at 
> $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:120)
>       at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:122)
>       at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:124)
>       at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:126)
>       at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:128)
>       at $iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:130)
>       at $iwC$$iwC$$iwC$$iwC.<init>(<console>:132)
>       at $iwC$$iwC$$iwC.<init>(<console>:134)
>       at $iwC$$iwC.<init>(<console>:136)
>       at $iwC.<init>(<console>:138)
>       at <init>(<console>:140)
>       at .<init>(<console>:144)
>       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:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:497)
>       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.zeppelin.spark.SparkInterpreter.interpretInput(SparkInterpreter.java:646)
>       at 
> org.apache.zeppelin.spark.SparkInterpreter.interpret(SparkInterpreter.java:611)
>       at 
> org.apache.zeppelin.spark.SparkInterpreter.interpret(SparkInterpreter.java:604)
>       at 
> org.apache.zeppelin.interpreter.ClassloaderInterpreter.interpret(ClassloaderInterpreter.java:57)
>       at 
> org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:93)
>       at 
> org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:292)
>       at org.apache.zeppelin.scheduler.Job.run(Job.java:170)
>       at 
> org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:118)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>       at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
> in while program block generated from while statement block between lines 263 
> and 1167 -- Error evaluating while program block.
>       at 
> org.apache.sysml.runtime.controlprogram.WhileProgramBlock.execute(WhileProgramBlock.java:196)
>       at 
> org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:146)
>       ... 65 more
> Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error 
> in program block generated from statement block between lines 278 and 669 -- 
> Error evaluating instruction: 
> SPARK°chkpoint°distinct_values_offset·MATRIX·DOUBLE°_mVar20842·MATRIX·DOUBLE°MEMORY_AND_DISK
>       at 
> org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:339)
>       at 
> org.apache.sysml.runtime.controlprogram.ProgramBlock.executeInstructions(ProgramBlock.java:227)
>       at 
> org.apache.sysml.runtime.controlprogram.ProgramBlock.execute(ProgramBlock.java:169)
>       at 
> org.apache.sysml.runtime.controlprogram.WhileProgramBlock.execute(WhileProgramBlock.java:183)
>       ... 66 more
> Caused by: org.apache.hadoop.mapred.InvalidInputException: Input path does 
> not exist: 
> hdfs://ehaascluster/user/biadmin/scratch_space/_p204381_10.136.68.22/_t0/temp11700_701
>       at 
> org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:287)
>       at 
> org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:229)
>       at 
> org.apache.hadoop.mapred.SequenceFileInputFormat.listStatus(SequenceFileInputFormat.java:45)
>       at 
> org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:315)
>       at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:207)
>       at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)
>       at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)
>       at scala.Option.getOrElse(Option.scala:120)
>       at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)
>       at 
> org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:32)
>       at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:219)
>       at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:217)
>       at scala.Option.getOrElse(Option.scala:120)
>       at org.apache.spark.rdd.RDD.partitions(RDD.scala:217)
>       at 
> org.apache.spark.api.java.JavaRDDLike$class.partitions(JavaRDDLike.scala:65)
>       at 
> org.apache.spark.api.java.AbstractJavaRDDLike.partitions(JavaRDDLike.scala:47)
>       at 
> org.apache.sysml.runtime.instructions.spark.CheckpointSPInstruction.getNumCoalescePartitions(CheckpointSPInstruction.java:156)
>       at 
> org.apache.sysml.runtime.instructions.spark.CheckpointSPInstruction.processInstruction(CheckpointSPInstruction.java:101)
>       at 
> org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:309)
>       ... 69 more
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to