如何将 spark-csv 包添加到 Azure 上的 jupyter 服务器以与 iPython 一起使用



我想从 Azure 上的 Spark HDInsight 群集上运行的 jupyter 服务中使用来自 https://github.com/databricks/spark-csv 的spark-csv包。

从本地群集中,我知道我可以这样做,例如:

export PACKAGES="com.databricks:spark-csv_2.11:1.3.0"
export PYSPARK_SUBMIT_ARGS="--packages ${PACKAGES} pyspark-shell"

但是我不明白/不知道将其放在 Azure 火花配置中的哪个位置。任何线索提示都值得赞赏。

您可以使用%%configure魔法添加任何所需的外部包。它应该像将以下代码片段放在第一个代码单元中一样简单。

%%configure
{ "packages":["com.databricks:spark-csv_2.10:1.4.0"] }

文档中还介绍了此特定示例。只需确保在%%configure单元格之后启动 Spark 会话即可。

从Jupyter笔记本管理集群中的Spark包的一个选项是Apache Toree。 Toree为您提供了一些额外的线条魔法,允许您从Jupyter笔记本中管理Spark包。 例如,在Jupyter scala笔记本中,您可以安装spark-csv

%AddDeps com.databricks spark-csv_2.11 1.4.0 --transitive

要在Spark集群上安装Apache Toree,请ssh到Spark集群中并运行,

sudo pip install --pre toree
sudo jupyter toree install 
   --spark_home=$SPARK_HOME 
   --interpreters=PySpark,SQL,Scala,SparkR 

我知道你特别问过运行PySpark的Jupyter笔记本。 目前,Apache Toree是一个孵化项目。我在将提供的线路魔法与 pyspark 笔记本一起使用时遇到了麻烦。也许你会有更好的运气。我正在研究为什么会这样,但就我个人而言,我更喜欢Spark中的Scala。希望这有帮助!

可以尝试在创建 HDInsight 群集时在 Azure 中调用的脚本中执行两行代码(导出...)。

由于使用的是 HDInsight,因此可以在导入所需库的 Spark 群集负载上使用"脚本操作"。该脚本可以是一个非常简单的 shell 脚本,它可以在启动时自动执行,并在调整集群大小时在新节点上自动重新执行。

https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-customize-cluster-linux/

最新更新