python - 在 Windows 上安装 pyspark

标签 python apache-spark pyspark

我可以在我的 Windows 上执行 pip install pyspark。当我尝试运行下面的示例脚本时,它告诉我我的 SPARK_HOME 未设置。

我是否需要将我的 SPARK_HOME 设置为静止状态,我该怎么做?

我在网上提到的博客从 spark 网站手动提取 spark 文件,然后他们必须放置 SPARK_HOME 和 PYTHONPATH。

但是,我认为这已通过 pip install pyspark 消除。

import findspark
findspark.init()

import pyspark # only run after findspark.init()
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()

df = spark.sql('''select 'spark' as hello ''')
df.show()

对于 intellij,在安装 pyspark 并根据需要进行设置后,是否还需要进行额外的配置?

最佳答案

一般来说,如果你不需要完整安装Spark,建议你直接用pip安装在你的环境中:

pip install pyspark

如果您使用的是 conda,您可以通过以下方式获取它:

conda install -c conda-forge pyspark

安装准备就绪后,您应该能够使用 pyspark 调用 Spark shell关键词。 运行可执行文件时可能会遇到几个问题。值得注意的是,您可能会遇到以下错误:

Python was not found but can be installed from the Microsoft Store

显然,如果您刚刚安装了 PySpark,您的虚拟环境中就已经准备好了 Python,因此您可以通过禁用 python.exe 来关闭这些默认路径。和 python3.exe Apps >> Apps & features >> App execution aliases 中的应用程序安装程序在设置中。

您可能仍然会遇到看似相关的错误:

Missing Python executable python3, defaulting to [path_to_spark_home] for SPARK_HOME environment variable. Please install Python or specify the correct Python executable in PYSPARK_DRIVER_PYTHON or PYSPARK_PYTHON environment variable to detect SPARK_HOME safely.

此错误消息与其中一些错误消息相结合:

The system cannot find the path specified.

在这种情况下,问题可能不合适 SPARK_HOME变量或未指定的 Python 路径。

在第一种情况下,尝试设置 SPARK_HOME明确地:

$env:SPARK_HOME=python -c "import pyspark, pathlib; print(pathlib.Path(pyspark.__file__).parent)"

此外,如果您在运行 pyspark 时仍然遇到问题,例如:

Cannot run program "python3": [...] The system cannot find the file specified

将与 Python 相关的变量设置为您环境中的 Python 路径。具体来说:

$env:PYSPARK_DRIVER_PYTHON=python -c "import sys; print(sys.executable)"
$env:PYSPARK_PYTHON=python -c "import sys; print(sys.executable)"

如果您没有安装Java 11,您应该download , 安装它并设置环境变量 JAVA_HOME到安装它的路径。如果您使用的是 conda,则可以改用 OpenJDK:

conda install -c conda-forge openjdk

您可能仍然会遇到错误说明:

Did not find winutils.exe. java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.

正如预期的那样,您需要 download binaries对于 Hadoop,然后设置 HADOOP_HOME该路径的环境变量。

一旦指定了所有这些路径,只要您拥有必要的权限,PySpark 可执行文件就应该能够运行。

运行pyspark 后尝试测试其能力使用一个简单的脚本:

df = spark.createDataFrame([("Spark", "Impala"), ("3.2", "2.2")])
df.show()

关于python - 在 Windows 上安装 pyspark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49641137/

相关文章:

python - 我怎么能刮这个?

python - 打印范围内可被 4 或 5 整除但不能同时被 5 整除的所有数字

scala - 如何使用 Scala 在 Spark 中进行滑动窗口排序?

Python:为什么列表理解比for循环慢

scala - Apache Spark RDD 拆分 "|"

scala - 连接到独立 Spark 上的远程主机

amazon-web-services - AWS Glue编写带分区的拼花地板

python - Spark DataFrame 中向量的访问元素(逻辑回归概率向量)

apache-spark - 如何在同一列pyspark sql中过滤多个条件

python - 创建 Python 包时出现问题