在 HD Insight 上将 Spark 包与 Jupyter Notebook 结合使用
Using Spark packages with Jupyter Notebook on HD Insight
我正在尝试通过 Jupyter 笔记本在 PySpark 上使用 graphFrames。我的 Spark 集群在 HD Insight 上,所以我无权编辑 kernel.json.
[此处][1] 和 [此处][2] 建议的解决方案无效。这就是我尝试 运行:
import os
packages = "graphframes:graphframes:0.3.0-spark2.0" # -s_2.11
os.environ["PYSPARK_SUBMIT_ARGS"] = (
"--packages {0} pyspark-shell".format(packages)
)
from graphframes import *
这导致名为 graphframes 的模块不存在的错误。有没有办法在更改此环境变量后启动新的 SparkContext?
我还尝试通过 %set_env 魔术命令将 PYSPARK_SUBMIT_ARGS 变量传递给 IPython,然后导入图形框架:
%set_env PYSPARK_SUBMIT_ARGS='--packages graphframes:graphframes:0.3.0-spark2.0-s_2.11 pyspark-shell'
from graphframes import *
但这导致了同样的错误。
我看到了一些将 jar 传递给 IPython 的建议,但我不确定如何将所需的 jar 下载到我的 HD Insight 集群。
你有什么建议吗?
原来我有两个不同的问题:
1) 我使用了错误的语法来配置笔记本。你应该使用:
# For HDInsight 3.3 and HDInsight 3.4
%%configure
{ "packages":["com.databricks:spark-csv_2.10:1.4.0"] }
# For HDInsight 3.5
%%configure
{ "conf": {"spark.jars.packages": "com.databricks:spark-csv_2.10:1.4.0" }}
Here 是微软的相关文档。
2) 根据 有用的答案,Spark 中似乎存在导致它错过包的jar 的错误。这对我有用:
sc.addPyFile(os.path.expanduser('./graphframes_graphframes-0.3.0-spark2.0-s_2.11.jar'))
我正在尝试通过 Jupyter 笔记本在 PySpark 上使用 graphFrames。我的 Spark 集群在 HD Insight 上,所以我无权编辑 kernel.json.
[此处][1] 和 [此处][2] 建议的解决方案无效。这就是我尝试 运行:
import os
packages = "graphframes:graphframes:0.3.0-spark2.0" # -s_2.11
os.environ["PYSPARK_SUBMIT_ARGS"] = (
"--packages {0} pyspark-shell".format(packages)
)
from graphframes import *
这导致名为 graphframes 的模块不存在的错误。有没有办法在更改此环境变量后启动新的 SparkContext?
我还尝试通过 %set_env 魔术命令将 PYSPARK_SUBMIT_ARGS 变量传递给 IPython,然后导入图形框架:
%set_env PYSPARK_SUBMIT_ARGS='--packages graphframes:graphframes:0.3.0-spark2.0-s_2.11 pyspark-shell'
from graphframes import *
但这导致了同样的错误。
我看到了一些将 jar 传递给 IPython 的建议,但我不确定如何将所需的 jar 下载到我的 HD Insight 集群。
你有什么建议吗?
原来我有两个不同的问题:
1) 我使用了错误的语法来配置笔记本。你应该使用:
# For HDInsight 3.3 and HDInsight 3.4
%%configure
{ "packages":["com.databricks:spark-csv_2.10:1.4.0"] }
# For HDInsight 3.5
%%configure
{ "conf": {"spark.jars.packages": "com.databricks:spark-csv_2.10:1.4.0" }}
Here 是微软的相关文档。
2) 根据
sc.addPyFile(os.path.expanduser('./graphframes_graphframes-0.3.0-spark2.0-s_2.11.jar'))