有没有人成功地为 Jupyter 找到了一个好的 Scala/Spark 内核?

数据挖掘 阿帕奇火花 朱庇特 核心 斯卡拉
2021-09-24 15:59:35

到目前为止我尝试过的那些

Almond:仅适用于 Scala,但您必须导入依赖项,并且一段时间后会变得乏味。不幸的是,当使用带有 YARN 而不是 Local 的 Spark 时无法运行。

Spylon-kernel:内核连接,但卡在初始化阶段。

Apache Toree:如果它有效,我会非常喜欢它。大量的语言支持,魔法,由 apache 孵化。但是,这个内核没有连接。卡在“内核连接”阶段。

我们永远不会像 Jupyter 那样自由灵活地运行 Spark 吗?
这是什么诅咒?

1个回答

我正在使用杏仁和 toree。为了只执行 scala 代码,我使用的是 almond。如果你想学习 Scala 的新特性(例如:2.13),那么使用 almond(在 almond v0.11.0 中添加 Scala 2.13.4 支持)。一旦发布,Almond 可能会开始支持 scala 3.0。

对于火花,我正在使用 toree。Toree 对我来说很好用。我正在使用 toree 0.5.0 和 spark 3.0.0。Toree 使用 scala 2.12。

首先按照此处提供的步骤安装 spark 3.0.0 安装后检查您是否能够从终端启动 spark shell。

#toree installation
#I used poetry for managing deps in virtual environment
pip install https://dist.apache.org/repos/dist/dev/incubator/toree/0.5.0-incubating-rc1/toree-pip/toree-0.5.0.tar.gz

# I installed/copied extracted spark binaries to /opt/spark
jupyter toree install --user --kernel_name=toree --spark_home=/opt/spark

通过这些步骤,您应该会找到添加到~$HOME/.local/share/jupyter/kernels/. 启动 jupyter notebook,您应该能够在尝试创建新 notebook 时找到列出的toree内核。您还可以执行jupyter kernelspec list以查看是否列出了新内核。

如果您能够创建一个新笔记本,那么您应该初始化内核而没有任何问题。尝试执行println("Hello world"),应该会成功。

在这里捕获了安装摘要