Scala Breeze在Web服务器上找不到我的文件,而Java则在

时间:2017-05-18 15:49:59

标签: scala scalatra scala-breeze

我是Scala的新手,所以可能会有一些我不知道的东西。

我有一个Scalatra网络服务器正在运行,其中一个csv文件位于与Scalatra servlet相同的文件夹中。 Web服务器识别刚找到的文件,并执行以下操作:

get("/dependencies") {
val variable = params.get("variable")
new java.io.File("/path/to/files/my_csv_file.csv")
}

按预期工作,并将csv文件作为http get请求返回。

但是,我想使用Breeze-library对csv数据进行一些常规操作。当我尝试将csv文件加载到Breezes csv reader时:

val matrix=csvread(new file("/path/to/files/my_csv_file.csv"), ',')

服务器返回以下错误:

[error] /path/to/files/MyScalatraServlet.scala:23: not found: type file
[error]   val matrix=csvread(new file("/path/to/files/"), ',')                         
[error]                           ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed
[error] Total time: 1 s, completed 18.5.2017 18:32:23

虽然代码中并不明显,但是包含csv模块的Breezes linalg模块已经导入到文件的开头。

import breeze.linalg._

有没有人知道为什么会发生这种错误?为什么Breeze找不到csv文件?

1 个答案:

答案 0 :(得分:0)

这是编译错误。我认为以下代码可行:

val matrix = csvread(new java.io.File("/path/to/files/"), ',')

val matrix = csvread("/path/to/files/", ',')