基于linux系统下的eclipse运营scala程序怎么配置环境
发布网友
发布时间:2022-04-22 16:52
我来回答
共1个回答
热心网友
时间:2023-07-10 19:39
最近,笔者在研究一个有关“自然语言处理”的项目,在这个项目中,需要我们用Spark进行编程。而Spark内核是由Scala语言开发的,所以在使用Spark之前,我们必须配置好Scala,而Scala又是运行在JVM上的,所以在配置Scala之前,先要配置好JDK。下面是我个人的一些总结。
我是在Win7系统下开的虚拟机,虚拟机的系统是CentOS7,在创建虚拟机完成后,它会自带一个OpenJDK,我的版本是这样的:
但是因为最开始不了解这个情况,所以我从官网上下载了jdk-8u73-linux-x64.tar.gz,并解压在/Downloads目录下。进入/etc/profile.d目录下,新建path.sh脚本文件,打开并配置环境变量如下图:
在/etc/profile.d目录下,键入source path.sh命令,使配置生效。
然而配置成功后,在控制台中键入java -version,依然会得到第一张图中的信息,后来发现在配置JDK之前,需要卸载系统自带的JDK。
在控制台中键入java,会出现如下图所示的内容:
但是不知道这些,只知道Java开发环境已经配置完毕,所以便开始找对应版本的Scala,我下载的是scala-2.10.5.tgz,并解压在/Downloads目录下。进入/etc/profile.d目录下,打开path.sh文件,配置Scala环境变量,如下图所示:
在/etc/profile.d目录下,键入source path.sh命令,使配置生效。
在控制台中键入scala -version和scala,会分别得到如下两张图中的内容:
关于Scala文件操作中出现的问题
在各种项目中,我们常常需要用到文件操作,笔者在近期的项目中遇到了一个与文件操作相关的问题。
在代码实现的过程中,笔者首先定义了一个文件路径:def PATH = "/a/b/c.txt"
之后开始使用文件操作:val source1 = Source.fromFile(PATH)
在for循环中,逐行读取文件、处理文件:for(line1 <- source1.getLines()) { // 逐行处理逻辑 }
在这一轮对文件的各行处理之后,笔者希望再次对处理后的结果进行下一轮处理,所以再次使用了for循环:for(line1 <- source1.getLines())
但是,结果显示,第二轮操作并没有真正实现。
经过研究发现,在利用source对象读取完一遍文件后,它便指向了文件的尾部,再次调用for循环时,实际上没有进行任何操作,因为没有读入任何数据。
解决方法是,重新实例化一个source2:val source2 = Source.fromFile(PATH)
再次调用for循环:for(line2 <- source2.getLines())
这样就可以实现再次对文件进行操作了。