首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Renjin从Scala中的R脚本加载.RData

使用Renjin从Scala中的R脚本加载.RData
EN

Stack Overflow用户
提问于 2016-11-30 12:11:58
回答 2查看 325关注 0票数 1

我有一个R脚本load.R试图做

代码语言:javascript
运行
复制
load("test.RData")

当我跑步时:

代码语言:javascript
运行
复制
engine.eval(new FileReader("load.R"))

出现一个例外情况:

代码语言:javascript
运行
复制
   Exception in thread "main" java.lang.NoClassDefFoundError: org/tukaani/xz/XZInputStream
    at org.renjin.primitives.io.connections.Connections.gzfile(Connections.java:79)
    at org.renjin.primitives.R$primitive$gzfile.doApply(R$primitive$gzfile.java:75)
    at org.renjin.primitives.R$primitive$gzfile.apply(R$primitive$gzfile.java:36)
    at org.renjin.primitives.special.InternalFunction.apply(InternalFunction.java:45)
    at org.renjin.eval.Context.evaluateCall(Context.java:302)
    at org.renjin.eval.Context.evaluate(Context.java:222)
    at org.renjin.eval.Context.evaluate(Context.java:163)
    at org.renjin.sexp.Closure.doApply(Closure.java:83)
    at org.renjin.eval.ClosureDispatcher.apply(ClosureDispatcher.java:73)
    at org.renjin.eval.ClosureDispatcher.applyClosure(ClosureDispatcher.java:58)
    at org.renjin.sexp.Closure.apply(Closure.java:78)
    at org.renjin.eval.Context.evaluateCall(Context.java:302)
    at org.renjin.eval.Context.evaluate(Context.java:222)
    at org.renjin.primitives.special.AssignLeftFunction.assignLeft(AssignLeftFunction.java:57)
    at org.renjin.primitives.special.AssignLeftFunction.apply(AssignLeftFunction.java:41)
    at org.renjin.eval.Context.evaluateCall(Context.java:302)
    at org.renjin.eval.Context.evaluate(Context.java:222)
    at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:38)
    at org.renjin.eval.Context.evaluateCall(Context.java:302)
    at org.renjin.eval.Context.evaluate(Context.java:222)
    at org.renjin.primitives.special.IfFunction.apply(IfFunction.java:40)
    at org.renjin.eval.Context.evaluateCall(Context.java:302)
    at org.renjin.eval.Context.evaluate(Context.java:222)
    at org.renjin.primitives.special.BeginFunction.apply(BeginFunction.java:38)
    at org.renjin.eval.Context.evaluateCall(Context.java:302)
    at org.renjin.eval.Context.evaluate(Context.java:222)
    at org.renjin.eval.Context.evaluate(Context.java:163)
    at org.renjin.sexp.Closure.doApply(Closure.java:83)
    at org.renjin.eval.ClosureDispatcher.apply(ClosureDispatcher.java:73)
    at org.renjin.eval.ClosureDispatcher.applyClosure(ClosureDispatcher.java:58)
    at org.renjin.sexp.Closure.apply(Closure.java:78)
    at org.renjin.eval.Context.evaluateCall(Context.java:302)
    at org.renjin.eval.Context.evaluate(Context.java:222)
    at org.renjin.eval.Context.evaluateExpressionVector(Context.java:285)
    at org.renjin.eval.Context.evaluate(Context.java:220)
    at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:145)
    at org.renjin.script.RenjinScriptEngine.eval(RenjinScriptEngine.java:104)
    at com.infosistema.imp.restservice.data_treatment.DataTreatment.<init>(DataTreatment.scala:34)
    at com.infosistema.imp.restservice.data_treatment.Main$.<init>(DataTreatment.scala:45)
    at com.infosistema.imp.restservice.data_treatment.Main$.<clinit>(DataTreatment.scala)
    at com.infosistema.imp.restservice.data_treatment.Main.main(DataTreatment.scala)
    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:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.ClassNotFoundException: org.tukaani.xz.XZInputStream
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 46 more

我不知道R。我只是尝试使用R代码来使用Renjin处理Java/Scala应用程序中的一些数据。

阅读文件化上的数据部分,没有提到从.RData文件加载数据。

更新:在我的build.sbt文件中有:

代码语言:javascript
运行
复制
resolvers += "BeDataDriven" at https://nexus.bedatadriven.com/content/groups/public",
libraryDependencies += "org.renjin" % "renjin-script-engine" % "0.8.1886"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-06 15:37:18

问题是coursier无法解决所有依赖项(无需任何通知)。

addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.0-M15")中删除plugins.sbt并使用sbt的默认解决程序解决了问题。

票数 0
EN

Stack Overflow用户

发布于 2016-12-01 16:31:40

仅仅在类路径上拥有renjin-script-Engin.jar是不够的,您还需要它的依赖关系。

如果使用SBT构建Scala项目,则需要将以下内容添加到构建文件中:

代码语言:javascript
运行
复制
resolvers +=
  "BeDataDriven" at "https://nexus.bedatadriven.com/content/groups/public"

lazy val root = (project in file(".")).
  settings(
    name := "renjin-test",
    version := "1.0",
    scalaVersion := "2.10.6",
    libraryDependencies += "org.renjin" % "renjin-script-engine" % "0.8.1886"
)

有关其他构建工具,请参见:http://docs.renjin.org/en/latest/library/project-setup.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40888063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档