没有名为 graphframes Jupyter Notebook 的模块
No module named graphframes Jupyter Notebook
我正在按照 this 安装指南进行操作,但在使用 graphframes
时遇到以下问题
from pyspark import SparkContext
sc =SparkContext()
!pyspark --packages graphframes:graphframes:0.5.0-spark2.1-s_2.11
from graphframes import *
--------------------------------------------------------------------------- ImportError Traceback (most recent call
last) in ()
----> 1 from graphframes import *
ImportError: No module named graphframes
我不确定是否可以通过以下方式安装包。
但我会感谢你的建议和帮助。
问得好!
打开你的 bashrc 文件,然后输入 export SPARK_OPTS="--packages graphframes:graphframes:0.5.0-spark2.1-s_2.11"
。保存 bashrc 文件后,关闭它并键入 source .bashrc
.
最后,打开你的笔记本并输入:
from pyspark import SparkContext
sc = SparkContext()
sc.addPyFile('/home/username/spark-2.3.0-bin-hadoop2.7/jars/graphframes-0.5.0-spark2.1-s_2.11.jar')
之后,您也许可以 运行 它。
我在 docker 中使用 jupyter notebook,试图让 graphframes 工作。首先,我使用了中的方法,我有:
import findspark
findspark.init()
import pyspark
import os
SUBMIT_ARGS = "--packages graphframes:graphframes:0.7.0-spark2.4-s_2.11 pyspark-shell"
os.environ["PYSPARK_SUBMIT_ARGS"] = SUBMIT_ARGS
conf = pyspark.SparkConf()
sc = pyspark.SparkContext(conf=conf)
print(sc._conf.getAll())
然后通过关注这个问题,我们终于能够import graphframes
:https://github.com/graphframes/graphframes/issues/172
import sys
pyfiles = str(sc.getConf().get(u'spark.submit.pyFiles')).split(',')
sys.path.extend(pyfiles)
from graphframes import *
最简单的方法是用 pyspark 启动 jupyter,而 graphframes 是从 pyspark 启动 jupyter。
只需打开您的终端并设置两个环境变量,然后使用 graphframes 包
启动pyspark
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS=notebook
pyspark --packages graphframes:graphframes:0.6.0-spark2.3-s_2.11
这样做的好处还在于,如果您稍后想通过 spark-submit
运行 您的代码,您可以使用相同的启动命令
我经历了漫长而痛苦的道路才找到适合这里的解决方案。
我正在 VS 代码中使用本机 jupyter 服务器。在那里,我创建了一个 .env
文件:
SPARK_HOME=/home/adam/projects/graph-algorithms-book/spark-3.2.0-bin-hadoop3.2
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
PYSPARK_SUBMIT_ARGS="--driver-memory 2g --executor-memory 6g --packages graphframes:graphframes:0.8.2-spark3.2-s_2.12 pyspark-shell"
然后在我的 python 笔记本中,我有如下内容:
from pyspark.sql.types import *
from graphframes import *
from pyspark.sql.session import SparkSession
spark = SparkSession.builder.appName('GraphFrames').getOrCreate()
您应该会看到打印出来的代码并相应地获取依赖项。像这样:
:: loading settings :: url = jar:file:/home/adam/projects/graph-algorithms-book/spark-3.2.0-bin-hadoop3.2/jars/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
Ivy Default Cache set to: /home/adam/.ivy2/cache
The jars for the packages stored in: /home/adam/.ivy2/jars
graphframes#graphframes added as a dependency
:: resolving dependencies :: org.apache.spark#spark-submit-parent-96a3a1f1-4ea4-4433-856b-042d0269ec1a;1.0
confs: [default]
found graphframes#graphframes;0.8.2-spark3.2-s_2.12 in spark-packages
found org.slf4j#slf4j-api;1.7.16 in central
:: resolution report :: resolve 174ms :: artifacts dl 8ms
:: modules in use:
graphframes#graphframes;0.8.2-spark3.2-s_2.12 from spark-packages in [default]
org.slf4j#slf4j-api;1.7.16 from central in [default]
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 2 | 0 | 0 | 0 || 2 | 0 |
---------------------------------------------------------------------
之后,我能够创建一些具有以下关系的代码:
v = spark.createDataFrame([
("a", "Alice", 34),
("b", "Bob", 36),
("c", "Charlie", 30),
], ["id", "name", "age"])
它应该可以正常工作。请记住对齐所有 pyspark 版本。我必须从分叉的仓库安装正确版本的 graphframes
。 PiPy 安装落后于版本,所以我不得不使用 PHPirates
存储库来进行正确的安装。这里的 graphframes 已针对 pyspark
.
版本 3.2.0
编译
pip install "git+https://github.com/PHPirates/graphframes.git@add-setup.py#egg=graphframes&subdirectory=python"
pip install pyspark==3.2.0
我正在按照 this 安装指南进行操作,但在使用 graphframes
from pyspark import SparkContext
sc =SparkContext()
!pyspark --packages graphframes:graphframes:0.5.0-spark2.1-s_2.11
from graphframes import *
--------------------------------------------------------------------------- ImportError Traceback (most recent call last) in () ----> 1 from graphframes import *
ImportError: No module named graphframes
我不确定是否可以通过以下方式安装包。 但我会感谢你的建议和帮助。
问得好!
打开你的 bashrc 文件,然后输入 export SPARK_OPTS="--packages graphframes:graphframes:0.5.0-spark2.1-s_2.11"
。保存 bashrc 文件后,关闭它并键入 source .bashrc
.
最后,打开你的笔记本并输入:
from pyspark import SparkContext
sc = SparkContext()
sc.addPyFile('/home/username/spark-2.3.0-bin-hadoop2.7/jars/graphframes-0.5.0-spark2.1-s_2.11.jar')
之后,您也许可以 运行 它。
我在 docker 中使用 jupyter notebook,试图让 graphframes 工作。首先,我使用了中的方法,我有:
import findspark
findspark.init()
import pyspark
import os
SUBMIT_ARGS = "--packages graphframes:graphframes:0.7.0-spark2.4-s_2.11 pyspark-shell"
os.environ["PYSPARK_SUBMIT_ARGS"] = SUBMIT_ARGS
conf = pyspark.SparkConf()
sc = pyspark.SparkContext(conf=conf)
print(sc._conf.getAll())
然后通过关注这个问题,我们终于能够import graphframes
:https://github.com/graphframes/graphframes/issues/172
import sys
pyfiles = str(sc.getConf().get(u'spark.submit.pyFiles')).split(',')
sys.path.extend(pyfiles)
from graphframes import *
最简单的方法是用 pyspark 启动 jupyter,而 graphframes 是从 pyspark 启动 jupyter。
只需打开您的终端并设置两个环境变量,然后使用 graphframes 包
启动pyspark
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS=notebook
pyspark --packages graphframes:graphframes:0.6.0-spark2.3-s_2.11
这样做的好处还在于,如果您稍后想通过 spark-submit
运行 您的代码,您可以使用相同的启动命令
我经历了漫长而痛苦的道路才找到适合这里的解决方案。
我正在 VS 代码中使用本机 jupyter 服务器。在那里,我创建了一个 .env
文件:
SPARK_HOME=/home/adam/projects/graph-algorithms-book/spark-3.2.0-bin-hadoop3.2
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
PYSPARK_SUBMIT_ARGS="--driver-memory 2g --executor-memory 6g --packages graphframes:graphframes:0.8.2-spark3.2-s_2.12 pyspark-shell"
然后在我的 python 笔记本中,我有如下内容:
from pyspark.sql.types import *
from graphframes import *
from pyspark.sql.session import SparkSession
spark = SparkSession.builder.appName('GraphFrames').getOrCreate()
您应该会看到打印出来的代码并相应地获取依赖项。像这样:
:: loading settings :: url = jar:file:/home/adam/projects/graph-algorithms-book/spark-3.2.0-bin-hadoop3.2/jars/ivy-2.5.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
Ivy Default Cache set to: /home/adam/.ivy2/cache
The jars for the packages stored in: /home/adam/.ivy2/jars
graphframes#graphframes added as a dependency
:: resolving dependencies :: org.apache.spark#spark-submit-parent-96a3a1f1-4ea4-4433-856b-042d0269ec1a;1.0
confs: [default]
found graphframes#graphframes;0.8.2-spark3.2-s_2.12 in spark-packages
found org.slf4j#slf4j-api;1.7.16 in central
:: resolution report :: resolve 174ms :: artifacts dl 8ms
:: modules in use:
graphframes#graphframes;0.8.2-spark3.2-s_2.12 from spark-packages in [default]
org.slf4j#slf4j-api;1.7.16 from central in [default]
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 2 | 0 | 0 | 0 || 2 | 0 |
---------------------------------------------------------------------
之后,我能够创建一些具有以下关系的代码:
v = spark.createDataFrame([
("a", "Alice", 34),
("b", "Bob", 36),
("c", "Charlie", 30),
], ["id", "name", "age"])
它应该可以正常工作。请记住对齐所有 pyspark 版本。我必须从分叉的仓库安装正确版本的 graphframes
。 PiPy 安装落后于版本,所以我不得不使用 PHPirates
存储库来进行正确的安装。这里的 graphframes 已针对 pyspark
.
3.2.0
编译
pip install "git+https://github.com/PHPirates/graphframes.git@add-setup.py#egg=graphframes&subdirectory=python"
pip install pyspark==3.2.0