最近开始学习spark,在windows上按照官方说明运行命令spark-shell进入到scala版本的spark shell时,出现了下面的问题:
Failed to initialize compiler: object scala.runtime in compiler mirror not found.
** Note that as of 2.8 scala does not assume use of the java classpath.
** For the old behavior pass -usejavacp to scala, or if using a Setting
** object programatically, settings.usejavacp.value = true.
出现这个问题的原因是2.8版本以上的scala将不再默认使用java的classpath.要解决这个问题,很显然,就是要在配置文件中添加使用java classpath的命令。
上网google方法后,终于找到完整可行的解决方案:
修改\bin\spark-class2.cmd文件下的内容(即添加下图中红色部分内容)
保存后,在cmd上运行bin\spark-shell命令,便可切换到scala版本下的shell
于是修改一下\bin\spark-class2.cmd:
rem Set JAVA_OPTS to be able to load native libraries and to set heap size
set JAVA_OPTS=%OUR_JAVA_OPTS% -Djava.library.path=%SPARK_LIBRARY_PATH% -Xms%SPARK_MEM% -Xmx%SPARK_MEM% -Dscala.usejavacp=true
值得一提的是,spark1.1.0版本发行包内的bin下包含很多个calss配置文件,如spark-class、spark-class.cmd、spark-class2.cmd,这3个文件内容不同。我曾尝试在其他两个文件中采用解决方案,但都无效。而至于为什么解决方案需要应用在spark-class2.cmd以及这3个文件到底实现怎样的功能又或者有怎样的联系,有待进一步的研究。
相关推荐
编译完成后,你可以通过运行以下命令启动 Spark Scala shell 来测试编译结果: ``` ./bin/spark-shell --master local[4] ``` 这里 `local[4]` 表示在本地模式下启动 Spark,使用 4 个核心。 关键知识点: 1. **...
这个版本包含Scala编译器、Scala库以及相关的工具,使得开发者可以在Windows环境下编写、编译和运行Scala代码。 要开始使用这个压缩包,首先需要解压缩文件。Windows系统内置了zip文件的处理功能,或者你可以使用第...
如果不指定变量的类型,Scala编译器会通过初始化表达式的类型来推断变量类型。不过,当需要明确类型时,可以这样做: ```scala var anotherVar: Int = 10 ``` 2. **Scala解释器与REPL** Scala提供了一个交互式...
解压后,你会得到一个名为"scala-2.11.12"的文件夹,其中包含了Scala编译器(scalac)、解释器(scala)和其他相关工具。为了在命令行中使用Scala,你需要将 Scala 的 bin 目录添加到系统的PATH环境变量中。这样,...
6. **运行Spark**:在命令行或IDE中,你可以启动Spark Shell或提交Spark应用程序。 了解和掌握这些组件,可以让你在大数据处理领域游刃有余,无论是进行数据存储、数据处理还是数据分析,都能够借助它们强大的功能...
同时,Spark的安装文件通常会包含`bin`目录,其中包含可执行脚本,用于启动Spark的各个组件,如`spark-shell`(Scala交互式环境)、`pyspark`(Python接口)和`spark-submit`(提交Spark作业)。可能还会有一个`conf...
这个压缩包包含了Scala编译器、运行时环境以及相关的库文件。解压过程通常使用`tar`命令,这是一个在Linux和Unix系统中广泛使用的工具。例如,你可以使用以下命令来解压: ```bash tar -zxvf scala-2.11.7.tgz ``` ...
1. **类型推断**:Scala编译器能够自动推断变量和表达式的类型,减少了显式类型的繁琐工作。 2. **模式匹配**:这是一种强大的语法结构,允许你根据值的结构进行解构和分支,简化了数据处理和分析。 3. **高阶函数...
在Spark开发中,Scala的强类型和面向对象特性让代码更易于维护,而函数式编程则鼓励使用不可变数据和高阶函数,这在处理大规模数据时尤其有利。Spark API大量使用了Scala的特性,如模式匹配和 Actors,使得开发...
首先,你需要安装Java Development Kit (JDK) 和 Scala编译器,因为Spark是用Scala编写的,且依赖于Java。确保JDK版本至少为8,Scala版本与Spark版本兼容。例如,如果你使用的是Spark 2.x,推荐使用Scala 2.11版本。...
2. 启动一个Spark Shell:`bin/spark-shell`,然后在Shell中执行一些简单的操作,比如创建一个RDD并进行操作,以确保Spark伪分布式环境正常工作。 至此,Spark伪分布式环境已经搭建完成。你可以在这个环境中编写和...
通过`scala`命令,你可以在交互式shell中尝试Scala,而`scalac`则用于编译Scala源代码成可执行的Java字节码。 总的来说,Scala-2.12.14是一个强大的编程环境,适合那些寻求高效、灵活和现代化开发工具的程序员。...
学习Spark实战,还需要掌握如何使用Spark Shell进行交互式编程,如何编写Scala、Java、Python或R语言的Spark应用程序,以及如何使用SparkSubmit提交作业。对于集群部署,了解standalone模式、YARN模式和Mesos模式的...
- 测试连接:通过`bin/spark-shell`进入Spark Shell,测试Spark是否正常工作。 6. **配置优化** - `conf/spark-defaults.conf`:设置默认配置,如executor内存、CPU核心数等。 - `conf/spark-env.sh`:根据集群...
- **启动**:使用 `bin/spark-sql --master local[2]` 启动 Spark SQL shell。 #### 五、查询执行计划 - **基本查询**:`EXPLAIN SELECT sal FROM emp ORDER BY sal;` - **物理计划**: ```plaintext ==...
2. **安装Scala编译器**: 配置Scala编译器环境,以便理解源码。 3. **IDE集成**: 在IDE中导入Spark源码项目,如使用IntelliJ IDEA的Scala插件。 4. **构建和运行源码**: 使用sbt构建工具,构建并运行Spark源码。 ##...
通过以上知识点的学习,你将能够熟练地在Spark SQL中进行数据处理,无论是从简单的数据转换,还是到复杂的分析任务,Spark SQL都能为你提供强大的支持。记住,实践是最好的老师,所以尝试在实际项目中应用这些概念,...
4. **测试Pyspark**: 打开终端,输入`pyspark`启动Pyspark的交互式Shell。如果一切正常,你应该看到一个Python提示符,可以开始编写和运行Spark程序了。 **Pyspark基本使用** 在Pyspark中,你可以创建`...