【问题标题】:How to link PyCharm with PySpark?如何将 PyCharm 与 PySpark 链接?
【发布时间】:2016-04-13 15:48:43
【问题描述】:

我是 apache spark 的新手,显然我在我的 macbook 中安装了带有 homebrew 的 apache-spark:

Last login: Fri Jan  8 12:52:04 on console
user@MacBook-Pro-de-User-2:~$ pyspark
Python 2.7.10 (default, Jul 13 2015, 12:05:58)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
16/01/08 14:46:44 INFO SparkContext: Running Spark version 1.5.1
16/01/08 14:46:46 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/01/08 14:46:47 INFO SecurityManager: Changing view acls to: user
16/01/08 14:46:47 INFO SecurityManager: Changing modify acls to: user
16/01/08 14:46:47 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(user); users with modify permissions: Set(user)
16/01/08 14:46:50 INFO Slf4jLogger: Slf4jLogger started
16/01/08 14:46:50 INFO Remoting: Starting remoting
16/01/08 14:46:51 INFO Remoting: Remoting started; listening on addresses :[akka.tcp://sparkDriver@192.168.1.64:50199]
16/01/08 14:46:51 INFO Utils: Successfully started service 'sparkDriver' on port 50199.
16/01/08 14:46:51 INFO SparkEnv: Registering MapOutputTracker
16/01/08 14:46:51 INFO SparkEnv: Registering BlockManagerMaster
16/01/08 14:46:51 INFO DiskBlockManager: Created local directory at /private/var/folders/5x/k7n54drn1csc7w0j7vchjnmc0000gn/T/blockmgr-769e6f91-f0e7-49f9-b45d-1b6382637c95
16/01/08 14:46:51 INFO MemoryStore: MemoryStore started with capacity 530.0 MB
16/01/08 14:46:52 INFO HttpFileServer: HTTP File server directory is /private/var/folders/5x/k7n54drn1csc7w0j7vchjnmc0000gn/T/spark-8e4749ea-9ae7-4137-a0e1-52e410a8e4c5/httpd-1adcd424-c8e9-4e54-a45a-a735ade00393
16/01/08 14:46:52 INFO HttpServer: Starting HTTP Server
16/01/08 14:46:52 INFO Utils: Successfully started service 'HTTP file server' on port 50200.
16/01/08 14:46:52 INFO SparkEnv: Registering OutputCommitCoordinator
16/01/08 14:46:52 INFO Utils: Successfully started service 'SparkUI' on port 4040.
16/01/08 14:46:52 INFO SparkUI: Started SparkUI at http://192.168.1.64:4040
16/01/08 14:46:53 WARN MetricsSystem: Using default name DAGScheduler for source because spark.app.id is not set.
16/01/08 14:46:53 INFO Executor: Starting executor ID driver on host localhost
16/01/08 14:46:53 INFO Utils: Successfully started service 'org.apache.spark.network.netty.NettyBlockTransferService' on port 50201.
16/01/08 14:46:53 INFO NettyBlockTransferService: Server created on 50201
16/01/08 14:46:53 INFO BlockManagerMaster: Trying to register BlockManager
16/01/08 14:46:53 INFO BlockManagerMasterEndpoint: Registering block manager localhost:50201 with 530.0 MB RAM, BlockManagerId(driver, localhost, 50201)
16/01/08 14:46:53 INFO BlockManagerMaster: Registered BlockManager
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /__ / .__/\_,_/_/ /_/\_\   version 1.5.1
      /_/

Using Python version 2.7.10 (default, Jul 13 2015 12:05:58)
SparkContext available as sc, HiveContext available as sqlContext.
>>>

我想开始玩以了解有关 MLlib 的更多信息。但是,我使用 Pycharm 在 python 中编写脚本。问题是:当我去 Pycharm 并尝试调用 pyspark 时,Pycharm 找不到该模块。我尝试将路径添加到 Pycharm 如下:

然后从blog 我尝试了这个:

import os
import sys

# Path for spark source folder
os.environ['SPARK_HOME']="/Users/user/Apps/spark-1.5.2-bin-hadoop2.4"

# Append pyspark  to Python Path
sys.path.append("/Users/user/Apps/spark-1.5.2-bin-hadoop2.4/python/pyspark")

try:
    from pyspark import SparkContext
    from pyspark import SparkConf
    print ("Successfully imported Spark Modules")

except ImportError as e:
    print ("Can not import Spark Modules", e)
    sys.exit(1)

仍然无法开始将 PySpark 与 Pycharm 一起使用,知道如何将 PyCharm 与 apache-pyspark “链接”吗?。

更新:

然后我搜索apache-spark和python路径,以便设置Pycharm的环境变量:

apache-spark 路径:

user@MacBook-Pro-User-2:~$ brew info apache-spark
apache-spark: stable 1.6.0, HEAD
Engine for large-scale data processing
https://spark.apache.org/
/usr/local/Cellar/apache-spark/1.5.1 (649 files, 302.9M) *
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/apache-spark.rb

python 路径:

user@MacBook-Pro-User-2:~$ brew info python
python: stable 2.7.11 (bottled), HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org
/usr/local/Cellar/python/2.7.10_2 (4,965 files, 66.9M) *

然后根据以上信息我尝试设置环境变量如下:

知道如何正确链接 Pycharm 和 pyspark 吗?

然后,当我使用上述配置运行 python 脚本时,我遇到了这个异常:

/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Users/user/PycharmProjects/spark_examples/test_1.py
Traceback (most recent call last):
  File "/Users/user/PycharmProjects/spark_examples/test_1.py", line 1, in <module>
    from pyspark import SparkContext
ImportError: No module named pyspark

更新: 然后我尝试了@zero323 提出的这个配置

配置一:

/usr/local/Cellar/apache-spark/1.5.1/ 

出来:

 user@MacBook-Pro-de-User-2:/usr/local/Cellar/apache-spark/1.5.1$ ls
CHANGES.txt           NOTICE                libexec/
INSTALL_RECEIPT.json  README.md
LICENSE               bin/

配置2:

/usr/local/Cellar/apache-spark/1.5.1/libexec 

出来:

user@MacBook-Pro-de-User-2:/usr/local/Cellar/apache-spark/1.5.1/libexec$ ls
R/        bin/      data/     examples/ python/
RELEASE   conf/     ec2/      lib/      sbin/

【问题讨论】:

    标签: python apache-spark pyspark pycharm homebrew


    【解决方案1】:

    使用 PySpark 包(Spark 2.2.0 及更高版本)

    SPARK-1267 被合并后,您应该能够通过在您用于 PyCharm 开发的环境中安装 Spark,pip 来简化流程。

    1. 转到文件 -> 设置 -> 项目解释器
    2. 点击安装按钮并搜索 PySpark

    3. 点击安装包按钮。

    手动使用用户提供的 Spark 安装

    创建运行配置

    1. 转到运行 -> 编辑配置
    2. 添加新的 Python 配置
    3. 设置脚本路径,使其指向您要执行的脚本
    4. 编辑环境变量字段,使其至少包含:

      • SPARK_HOME - 它应该指向安装 Spark 的目录。它应该包含诸如bin(带有spark-submitspark-shell等)和conf(带有spark-defaults.confspark-env.sh等)等目录
      • PYTHONPATH - 它应该包含$SPARK_HOME/python 和可选的$SPARK_HOME/python/lib/py4j-some-version.src.zip,如果其他情况下不可用。 some-version 应该匹配给定 Spark 安装使用的 Py4J 版本(0.8.2.1 - 1.5、0.9 - 1.6、0.10.3 - 2.0、0.10.4 - 2.1、0.10.4 - 2.2、0.10.6 - 2.3、0.10。 7 - 2.4)

    5. 应用设置

    将 PySpark 库添加到解释器路径(代码完成所需)

    1. 转到文件 -> 设置 -> 项目解释器
    2. 打开您要与 Spark 一起使用的解释器的设置
    3. 编辑解释器路径,使其包含$SPARK_HOME/python 的路径(如果需要,可以使用 Py4J)
    4. 保存设置

    可选

    1. 安装或添加到路径 type annotations 匹配已安装的 Spark 版本以获得更好的完成和静态错误检测(免责声明 - 我是该项目的作者)。

    终于

    使用新创建的配置来运行您的脚本。

    【讨论】:

    • 顺便说一句,这就是您编辑解释器路径的方式,至少在 PyCharm 2016 中:jetbrains.com/help/pycharm/2016.1/… 选择“显示所选解释器的路径”按钮
    • 在 Mac 版本的 PyCharm (v-2017.2) 上,项目解释器位于 Preferences... 而不是 File/Settings
    • 使用选项 1,如何添加 Spark JAR/包?例如,我需要 com.databricks:spark-redshift_2.10:3.0.0-preview1
    • @lfk 通过配置文件 (spark-defaults.conf) 或通过提交参数 - 与 Jupyter notebook 相同。提交参数可以在 PyCharm 的环境变量中定义,而不是代码,如果你喜欢这个选项。
    【解决方案2】:

    这是我在 mac osx 上解决此问题的方法。

    1. brew install apache-spark
    2. 将此添加到 ~/.bash_profile

      export SPARK_VERSION=`ls /usr/local/Cellar/apache-spark/ | sort | tail -1`
      export SPARK_HOME="/usr/local/Cellar/apache-spark/$SPARK_VERSION/libexec"
      export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
      export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH
      
    3. 将 pyspark 和 py4j 添加到内容根目录(使用正确的 Spark 版本):

      /usr/local/Cellar/apache-spark/1.6.1/libexec/python/lib/py4j-0.9-src.zip
      /usr/local/Cellar/apache-spark/1.6.1/libexec/python/lib/pyspark.zip
      

    【讨论】:

    • 这是哪个版本的pycharm?我使用的是 2016.1 社区版,但没有看到此窗口。
    • 2016.1 我在 osx 上,但应该类似。转到“首选项”下。点击左侧的项目。
    • 谢谢。这在没有项目解释器设置的 IntelliJ IDEA 上帮助了我。
    • 您能解释一下添加到内容根目录的作用吗?我不需要这样做......我只是将$SPARK_HOME/python 放在解释器类路径中并添加了环境变量,它按预期工作。
    • @cricket_007 第三点:Add pyspark and py4j to content root (use the correct Spark version) 帮助我完成了代码。您是如何通过更改 Project Interpreter 来完成的?
    【解决方案3】:

    这是适合我的设置(Win7 64bit,PyCharm2017.3CE)

    设置智能感知:

    1. 点击文件->设置->项目:->项目解释器

    2. 单击“项目解释器”下拉列表右侧的齿轮图标

    3. 从上下文菜单中单击更多...

    4. 选择解释器,然后点击“显示路径”图标(右下角)

    5. 点击+图标二添加如下路径:

      \python\lib\py4j-0.9-src.zip

      \bin\python\lib\pyspark.zip

    6. 点击确定,确定,确定

    继续测试您的新智能感知功能。

    【讨论】:

    • 非常需要的答案:)
    【解决方案4】:

    在pycharm(windows)中配置pyspark

    File menu - settings - project interpreter - (gearshape) - more - (treebelowfunnel) - (+) - [add python folder form spark installation and then py4j-*.zip] - click ok
    

    确保在 windows 环境中设置了 SPARK_HOME,pycharm 将从那里获取。确认:

    Run menu - edit configurations - environment variables - [...] - show
    

    可选择在环境变量中设置 SPARK_CONF_DIR。

    【讨论】:

      【解决方案5】:

      我使用以下页面作为参考,并且能够在 PyCharm 5 中导入 pyspark/Spark 1.6.1(通过自制软件安装)。

      http://renien.com/blog/accessing-pyspark-pycharm/

      import os
      import sys
      
      # Path for spark source folder
      os.environ['SPARK_HOME']="/usr/local/Cellar/apache-spark/1.6.1"
      
      # Append pyspark  to Python Path
      sys.path.append("/usr/local/Cellar/apache-spark/1.6.1/libexec/python")
      
      try:
          from pyspark import SparkContext
          from pyspark import SparkConf
          print ("Successfully imported Spark Modules")
      except ImportError as e:
          print ("Can not import Spark Modules", e)
      sys.exit(1)
      

      通过上述方式,pyspark 加载,但是当我尝试创建 SparkContext 时出现网关错误。自制程序中的 Spark 存在一些问题,所以我只是从 Spark 网站上获取了 Spark(下载 Pre-built for Hadoop 2.6 及更高版本)并指向其下的 spark 和 py4j 目录。这是 pycharm 中有效的代码!

      import os
      import sys
      
      # Path for spark source folder
      os.environ['SPARK_HOME']="/Users/myUser/Downloads/spark-1.6.1-bin-hadoop2.6"
      
      # Need to Explicitly point to python3 if you are using Python 3.x
      os.environ['PYSPARK_PYTHON']="/usr/local/Cellar/python3/3.5.1/bin/python3"
      
      #You might need to enter your local IP
      #os.environ['SPARK_LOCAL_IP']="192.168.2.138"
      
      #Path for pyspark and py4j
      sys.path.append("/Users/myUser/Downloads/spark-1.6.1-bin-hadoop2.6/python")
      sys.path.append("/Users/myUser/Downloads/spark-1.6.1-bin-hadoop2.6/python/lib/py4j-0.9-src.zip")
      
      try:
          from pyspark import SparkContext
          from pyspark import SparkConf
          print ("Successfully imported Spark Modules")
      except ImportError as e:
          print ("Can not import Spark Modules", e)
          sys.exit(1)
      
      sc = SparkContext('local')
      words = sc.parallelize(["scala","java","hadoop","spark","akka"])
      print(words.count())
      

      我从这些说明中得到了很多帮助,它们帮助我在 PyDev 中进行故障排除,然后让 PyC​​harm 正常工作 - https://enahwe.wordpress.com/2015/11/25/how-to-configure-eclipse-for-developing-with-python-and-spark-on-hadoop/

      我敢肯定,有人花了几个小时将头撞在他们的显示器上,试图让它正常工作,所以希望这能帮助他们保持理智!

      【讨论】:

        【解决方案6】:

        我使用conda 来管理我的 Python 包。所以我在 PyCharm 之外的终端中所做的只是:

        conda install pyspark
        

        或者,如果你想要一个更早的版本,比如 2.2.0,那么:

        conda install pyspark=2.2.0
        

        这也会自动引入 py4j。然后 PyCharm 不再抱怨 import pyspark... 并且代码完成也起作用了。请注意,我的 PyCharm 项目已经配置为使用 Anaconda 附带的 Python 解释器。

        【讨论】:

          【解决方案7】:

          最简单的方法是通过项目解释器安装 PySpark。

          1. 转到文件 - 设置 - 项目 - 项目解释器
          2. 点击右上角的 + 图标。
          3. 搜索 PySpark 和其他要安装的软件包
          4. 最后点击安装包
          5. 完成了!!

          【讨论】:

            【解决方案8】:

            查看this video.

            假设你的 spark python 目录是:/home/user/spark/python

            假设你的 Py4j 源是:/home/user/spark/python/lib/py4j-0.9-src.zip

            基本上,您将 spark python 目录和其中的 py4j 目录添加到解释器路径中。我没有足够的声誉来发布屏幕截图,否则我会。

            在视频中,用户在 pycharm 内部创建了一个虚拟环境,但是,您可以在 pycharm 之外创建虚拟环境或激活预先存在的虚拟环境,然后使用它启动 pycharm 并将这些路径添加到虚拟环境pycharm 中的解释器路径。

            我使用其他方法通过 bash 环境变量添加 spark,这在 pycharm 之外效果很好,但由于某种原因,它们在 pycharm 中无法识别,但这种方法效果很好。

            【讨论】:

            • @ml_student 我还要提一下,如果你按照视频方法(我建议它的速度和易用性),你需要在你的开头实例化一个 SparkContext 对象脚本也是如此。我注意到这一点是因为通过命令行使用交互式 pyspark 控制台会自动为您创建上下文,而在 PyCharm 中,您需要自己处理;语法为:sc = SparkContext()
            【解决方案9】:

            您需要在启动 IDE 或 Python 之前设置 PYTHONPATH、SPARK_HOME。

            Windows,编辑环境变量,将 spark python 和 py4j 添加到

            PYTHONPATH=%PYTHONPATH%;{py4j};{spark python}
            

            Unix,

            export PYTHONPATH=${PYTHONPATH};{py4j};{spark/python}
            

            【讨论】:

              【解决方案10】:

              我用pycharm链接python和spark。我的电脑中预装了 Java 和 Spark。

              这些是我遵循的步骤

              1. 创建新项目

              2. 在新项目的设置中--> 我选择 Python3.7(venv) 作为我的 python。这是我的新项目中 venv 文件夹中的 python.exe 文件。你可以在你的电脑中提供任何可用的python。

              3. 在设置 --> 项目结构 --> 添加 Content_Root

                我添加了两个 zip 文件夹作为 spark 的目录

                1. C:\Users\USER\spark-3.0.0-preview2-bin-hadoop2.7\python\lib\py4j-0.10.8.1-src.zip
                2. C:\Users\USER\spark-3.0.0-preview2-bin-hadoop2.7\python\lib\pyspark.zip
              4. 在新项目中创建一个 python 文件。然后去编辑配置(在上面 右侧下拉菜单)并选择环境变量

              5. 我使用了以下环境变量,对我来说效果很好

                1. PYTHONUNBUFFERED 1
                2. JAVA_HOME C:\Program Files\Java\jre1.8.0_251
                3. PYSPARK_PYTHON C:\Users\USER\PycharmProjects\pyspark\venv\Scripts\python.exe
                4. SPARK_HOME C:\Users\USER\spark-3.0.0-preview2-bin-hadoop2.7
                5. HADOOP_HOME C:\Users\USER\winutils

                您可能需要额外下载 winutils.exe 并将其放在路径中 C:\Users\USER\winutils\bin

              6. 在 Edit Configurations--> Templates 中提供相同的环境变量

              7. 进入设置-->项目解释器-->导入pyspark

              8. 运行你的第一个 pyspark 程序!

              【讨论】:

                【解决方案11】:

                来自documentation

                要在 Python 中运行 Spark 应用程序,请使用 bin/spark-submit 脚本 位于 Spark 目录中。该脚本将加载 Spark 的 Java/Scala 库,并允许您将应用程序提交到 簇。您还可以使用 bin/pyspark 启动交互式 Python 外壳。

                您正在使用 CPython 解释器直接调用您的脚本,我认为这会导致问题。

                尝试使用以下命令运行您的脚本:

                "${SPARK_HOME}"/bin/spark-submit test_1.py
                

                如果可行,您应该能够通过将项目的解释器设置为 spark-submit 来使其在 PyCharm 中运行。

                【讨论】:

                • 你应该可以通过将项目的解释器设置为 spark-submit 来让它在 PyCharm 中工作 -- 试过了。 “所选文件不是 Python SDK 的有效主页”。 bin/pyspark 也一样
                【解决方案12】:

                我按照在线教程将环境变量添加到.bashrc:

                # add pyspark to python
                export SPARK_HOME=/home/lolo/spark-1.6.1
                export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
                export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH
                

                然后我将 SPARK_HOME 和 PYTHONPATH 中的值获取到 pycharm:

                (srz-reco)lolo@K:~$ echo $SPARK_HOME 
                /home/lolo/spark-1.6.1
                (srz-reco)lolo@K:~$ echo $PYTHONPATH
                /home/lolo/spark-1.6.1/python/lib/py4j-0.9-src.zip:/home/lolo/spark-1.6.1/python/:/home/lolo/spark-1.6.1/python/lib/py4j-0.9-src.zip:/home/lolo/spark-1.6.1/python/:/python/lib/py4j-0.8.2.1-src.zip:/python/:
                

                然后我将它复制到运行/调试配置 -> 脚本的环境变量。

                【讨论】:

                  【解决方案13】:

                  来自pyspark_xray 的本教程是一个可以在 PyCharm 上调试 pyspark 代码的工具,可以回答您的问题。它涵盖了 Windows 和 Mac。

                  准备

                  • 打开命令行,启动java 命令,如果出现错误,则下载并安装java(截至 2020 年 4 月的版本为 1.8.0_221)
                  • 如果您没有,请下载并安装 PyCharm 社区版(截至 2020 年 4 月的版本 2020.1)
                  • 如果没有,请下载并安装 Anaconda Python 3.7 运行时
                  • 在本地下载并安装 spark 最新的 Pre-built for Apache Hadoop(spark-2.4.5-bin-hadoop2.7,截至 2020 年 4 月,200+MB 大小)
                    • 窗口
                      • 如果您没有解压缩工具,请下载并安装 7zip,这是一个免费的文件压缩/解压缩工具
                      • 将 spark tgz 文件的内容提取到 c:\spark-x.x.x-bin-hadoopx.x 文件夹
                      • 按照this tutorial中的步骤进行操作
                        • winutils.exe安装到c:\spark-x.x.x-bin-hadoopx.x\bin文件夹中,没有这个可执行文件,写引擎输出时会出错
                    • 苹果机
                      • 将 spark tgz 文件的内容提取到 \Users[USERNAME]\spark-x.x.x-bin-hadoopx.x 文件夹
                  • 通过pip install pysparkconda install pyspark 安装pyspark

                  运行配置

                  您可以通过发出 spark-submit 命令在集群上运行 Spark 应用程序,该命令将 Spark 作业提交到集群。但是从本地笔记本电脑或 PC 上的 PyCharm 或其他 IDE 中,spark-submit 不能用于启动 Spark 作业。相反,请按照以下步骤在 PyCharm 上设置 pyspark_xray 的 demo_app 的运行配置

                  • 设置环境变量:
                    • HADOOP_HOME 值设置为C:\spark-2.4.5-bin-hadoop2.7
                    • SPARK_HOME 值设置为C:\spark-2.4.5-bin-hadoop2.7
                  • 使用 Github Desktop 或其他 git 工具从 Github 克隆 pyspark_xray
                  • PyCharm > 将 pyspark_xray 作为项目打开
                  • 打开 PyCharm > 运行 > 编辑配置 > 默认值 > Python 并输入以下值:
                    • 环境变量 (Windows):PYTHONUNBUFFERED=1;PYSPARK_PYTHON=python;PYTHONPATH=$SPARK_HOME/python;PYSPARK_SUBMIT_ARGS=pyspark-shell;
                  • 打开PyCharm > Run > Edit Configurations,新建Python配置,将脚本指向pyspark_xray的driver.py的路径 > demo_app

                  driver-run-config

                  【讨论】:

                    【解决方案14】:

                    转到项目结构:

                    选项1:文件->设置->项目:->项目结构

                    选项 2:PyCharm -> 首选项 -> 项目:-> 项目结构

                    添加内容根目录:来自 $SPARK_HOME/python/lib 的所有 ZIP 文件

                    【讨论】:

                      【解决方案15】:

                      MacOS 上最新的 Spark 和 Python 版本如下:

                      SPARK_VERSION=3.1.1
                      PY4J=0.10.9
                      PYTHON=3.8.12
                      

                      SPARK_HOMEPYTHONPATH 以及PYENV_ROOT 添加以下环境变量到~/.bash_profile。此外,SPARK_HOMEPYENV_ROOT 被添加到 PATH

                      export SPARK_VERSION=`ls /usr/local/Cellar/apache-spark/ | sort | tail -1`
                      export SPARK_HOME=/usr/local/Cellar/apache-spark/$SPARK_VERSION/libexec
                      export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
                      export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
                      export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.10.9-src.zip:$PYTHONPATH
                      
                      export PYENV_ROOT=/usr/local/opt/pyenv
                      export PATH=$PYENV_ROOT/bin:$PATH
                      
                      if command -v pyenv 1>/dev/null 2>&1; then
                          eval "$(pyenv init -)"
                      fi
                      

                      Project -&gt; Preferences -&gt; Python Interpreter 下,将 PyEnv Python 添加为新的解释器并使用它代替默认解释器。

                      在添加 Python 解释器下,转到 Virtual Environment -&gt; Under Existing Environment -> 选择 /usr/local/opt/pyenv/versions/3.8.12/bin/python 作为 PySpark 项目的 Python 解释器。

                      在 Python 代码中,在开头添加以下代码块(注意:pysparkfindsparkpy4j 需要预先安装为包)

                      import findspark
                      from pyspark import SparkContext
                      findspark.init("/usr/local/Cellar/apache-spark/3.1.1/libexec") 
                      

                      【讨论】:

                        【解决方案16】:

                        最简单的方法是

                        转到您安装的 anaconda/python 的 site-packages 文件夹,将 pysparkpyspark.egg-info 文件夹复制粘贴到那里。

                        重启 pycharm 以更新索引。 上述两个文件夹位于 spark 安装的 spark/python 文件夹中。这样您也可以从 pycharm 获得代码完成建议。

                        可以在您的 python 安装中轻松找到站点包。在 anaconda 中,它位于 anaconda/lib/pythonx.x/site-packages

                        【讨论】:

                        • 这样 pycharm 会认为它是另一个库。
                        【解决方案17】:

                        我尝试通过 Project Interpreter 菜单添加 pyspark 模块,但还不够……需要设置许多系统环境变量,例如 SPARK_HOME/hadoop/bin/winutils.exe 的路径才能读取本地数据文件。您还需要使用系统环境变量和PATH 中可用的正确版本的Python、JRE、JDK。在谷歌上搜索了很多之后,instructions in these videos 工作了

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 2016-11-21
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2021-05-06
                          相关资源
                          最近更新 更多