今天在intellij调试spark的时候感觉每次有新的一段代码,都要重新跑一遍,如果用spark-shell,感觉也不是特别方便,如果能像python那样,使用jupyter notebook进行编程就很方便了,同时也适合代码展示,网上查了一下,试了一下,碰到了很多坑,有些是旧的版本,还有些是版本不同导致错误,这里就记录下来安装的过程。
1.运行环境
硬件:Mac
事先装好:Jupyter notebook,spark2.1.0,scala 2.11.8 (这个版本很重要,关系到后面的安装)
2.安装
2.1.scala kernel
从github下载
git clone https:/
**Jupyter Notebook运行Spark+Scala教程**
在进行大数据分析或机器学习项目时,开发者经常需要在不同的编程环境中切换,这可能会降低工作效率。Jupyter Notebook因其交互性和可视化的特性,成为了许多数据科学家和工程师的首选工具。这篇教程将指导你如何在Jupyter Notebook中配置和运行Spark+Scala程序,让你享受到类似Python的便捷开发体验。
### 1. 运行环境准备
确保你的硬件环境为Mac,并已安装以下软件:
- **Jupyter Notebook**:这是一个开源的Web应用,允许你在浏览器中创建和共享文档,包含实时代码、方程式、可视化和文本。
- **Spark 2.1.0**:Apache Spark是一个用于大规模数据处理的快速、通用和可扩展的开源框架。
- **Scala 2.11.8**:Scala是一种多范式编程语言,它可以无缝地结合面向对象编程和函数式编程的特点。Spark的主要开发语言就是Scala。
### 2. 安装Scala内核
为了在Jupyter Notebook中使用Scala,我们需要安装一个名为`jupyter-scala`的内核。你可以通过以下步骤完成安装:
1. 使用Git克隆`jupyter-scala`的GitHub仓库:
```
git clone https://github.com/jupyter-scala/jupyter-scala.git
```
2. 进入克隆的目录并执行安装命令:
```
cd jupyter-scala
bash jupyter-scala
```
3. 安装完成后,通过`jupyter kernelspec list`检查内核是否成功安装。如果列表中显示了`scala`,则说明Scala内核已经被正确地嵌入到Jupyter Notebook中。
### 3. 安装Spark内核
Spark内核通常通过Toree来安装,但需要注意版本兼容性问题。以下是安装Toree和Spark内核的步骤:
1. 首先尝试使用`pip install toree`安装Toree,但请注意,这可能会下载一个旧版本(如0.1.0),该版本可能与你的Spark不兼容。
2. 为了避免版本冲突,确保你下载的Toree版本与你的Spark版本匹配。例如,如果你使用的是Spark 2.1.0,你需要找到对应版本的Toree。
3. 安装完成后,启动Toree并指定`SPARK_HOME`环境变量,以指向你的Spark安装目录,例如:
```
export SPARK_HOME=/usr/local/spark16/11/20
toree install --interpreters=Scala --spark_home=$SPARK_HOME
```
4. 如果遇到版本不兼容的问题,如报错`NoSuchMethodError: scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet;`,那可能是因为Toree默认使用了不匹配的Scala版本。这时你需要指定正确的Scala版本,或者手动修改Toree配置文件中的Scala版本信息。
### 4. 配置和运行
1. 启动Jupyter Notebook服务:
```
jupyter notebook
```
2. 在浏览器中打开Jupyter Notebook界面,创建一个新的Notebook,并在"New"菜单中选择"Scala"内核。
3. 现在你可以在Notebook中编写Scala代码,直接与Spark交互。例如,你可以导入Spark库,创建SparkSession,加载数据集,进行数据处理等操作。
4. 注意,每次运行代码单元格时,Spark会自动启动或恢复之前的状态,这样你就能够方便地测试和调试代码,而无需每次都重新启动Spark。
### 结论
通过以上步骤,你能够在Jupyter Notebook中顺利地运行Spark+Scala项目。这种方式提高了开发效率,使代码展示更加直观,尤其适合教学、演示和团队协作。记得在安装过程中密切关注版本兼容性,避免遇到不必要的错误。祝你在大数据分析的道路上越走越远!
- 1
- 2
前往页