【问题标题】:How to start graphframes on spark on pyspark on juypter on docker?如何在 docker 上的 jupyter 上的 pyspark 中启动图形框架?
【发布时间】:2020-11-25 19:35:44
【问题描述】:

整天都在 juypter 上玩 pyspark,没有任何问题。只需使用 docker 镜像 juypter/pyspark-notebook,我需要的 90% 都已打包(耶!)

我想开始探索使用 GraphFrames,它位于 GraphX 之上,GraphX 位于 Spark 之上。有没有人让这个组合起作用?

本质上,根据文档,我只需要在运行 pyspark 时传递“--packages graphframes:xxyyzz”即可下载和运行graphframes。问题是一旦容器出现,juypter 就已经在运行了。

我尝试在运行 docker run 时将“--packages”行作为环境变量 (-e) 传递给 JUYPTER_SPARK_OPTS 和 SPARK_OPTS,但没有成功。我发现我可以从终端执行pip install graphframes,这让我成为了一部分——安装了python库,但java库不是“java.lang.ClassNotFoundException: org. graphframes.GraphFramePythonAPI"。

image specifics documentation 似乎没有提供有关如何将 Spark 包部署到映像的任何见解。

有没有特定的地方可以扔graphframes .jar?是否有安装 spark 包 post-docker 的命令? docker run 是否有一个神奇的参数可以安装它?

我敢打赌,对此有一个非常简单的答案——或者我在这里是高棉吗?

参考资料:

【问题讨论】:

    标签: docker apache-spark pyspark jupyter-notebook graphframes


    【解决方案1】:

    所以答案很简单:

    gist here,我们需要简单地告诉juypter 将--packages 行添加到SPARK_SUBMIT,并在我的笔记本顶部使用类似这样的内容。 Spark在抓取上下文时会出去安装包:

    import os
    os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages graphframes:graphframes:0.8.1-spark3.0-s_2.12 pyspark-shell'
    

    留意graphframes package 上提供的版本,目前这意味着 scala 2.12 上 spark 3.0 上的 graphframes 0.8.1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-17
      • 1970-01-01
      • 2023-03-05
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多