RserveException:在 Databricks 上运行 R 时 eval 失败

oct*_*ian 5 r apache-spark

我没有任何 R 经验,我尝试在 Databricks 笔记本中与 Spark 一起使用它来分析一些数据。

我已经按照这里的教程http://people.apache.org/~pwendell/spark-releases/latest/sparkr.html

到目前为止我有这个代码:

sparkR.stop()
sc <- sparkR.init()
sqlContext <- sparkRSQL.init(sc)

df <- createDataFrame(sqlContext, '/FileStore/tables/boanf7gu1466936449434/german.data')
Run Code Online (Sandbox Code Playgroud)

在最后一行我收到错误:

RserveException: eval failed, request status: error code: 127
org.rosuda.REngine.Rserve.RserveException: eval failed, request status: error code: 127
    at org.rosuda.REngine.Rserve.RConnection.eval(RConnection.java:234)
    at com.databricks.backend.daemon.driver.RShell.setJobGroup(RShell.scala:202)
    at com.databricks.backend.daemon.driver.RDriverLocal.setJobGroup(RDriverLocal.scala:150)
    at com.databricks.backend.daemon.driver.DriverLocal.execute(DriverLocal.scala:125)
    at com.databricks.backend.daemon.driver.DriverWrapper$$anonfun$3.apply(DriverWrapper.scala:483)
    at com.databricks.backend.daemon.driver.DriverWrapper$$anonfun$3.apply(DriverWrapper.scala:483)
    at scala.util.Try$.apply(Try.scala:161)
    at com.databricks.backend.daemon.driver.DriverWrapper.executeCommand(DriverWrapper.scala:480)
    at com.databricks.backend.daemon.driver.DriverWrapper.runInner(DriverWrapper.scala:381)
    at com.databricks.backend.daemon.driver.DriverWrapper.run(DriverWrapper.scala:212)
    at java.lang.Thread.run(Thread.java:745)
Run Code Online (Sandbox Code Playgroud)

是什么触发了这个?

Rus*_*oom 0

在DataBricks中,已经有一个spark实例正在运行。所以,你不想阻止它。

sparkR.stop() #This line of your code stops the existing spark instance. 
sc <- sparkR.init()  #You also don't need this to start a spark instance because you already have one.
sqlContext <- sparkRSQL.init(sc)
Run Code Online (Sandbox Code Playgroud)

由于您已经有一个实例,因此您可以使用以下命令直接创建 df。

spark_table <- SparkR::read.df(path = '/FileStore/tables/boanf7gu1466936449434/german.data', schema = NULL, na.strings = "NA")
r_table <- SparkR::as.data.frame(spark_table)
Run Code Online (Sandbox Code Playgroud)