【问题标题】:Installing spark on local machine - .getOrCreate sparksession does not finish在本地机器上安装 spark - .getOrCreate sparksession 未完成
【发布时间】:2022-02-24 18:18:17
【问题描述】:

我已按照本指南在我的本地计算机 (Windows 10) 上安装了 spark:https://changhsinlee.com/install-pyspark-windows-jupyter/

从 Anaconda 启动笔记本并运行时:

spark_session = SparkSession\
        .builder\
        .master("local[*]")\
        .appName("Z_PA")\
        .getOrCreate()

它需要很长时间并且不会完成(至少在 60 分钟内)。

在此之前,我收到错误“java-gateway-process-exited-before...”。阅读此步骤后:“ https://stackoverflow.com/questions/31841509/pyspark-exception-java-gateway-process-exited-before-sending-the-driver-its-po ”我安装了以下版本并更改了目录空格。

我下载并安装了:

  • java版本“1.8.0_202”
  • Anaconda:conda 4.11.0
  • Python:Python 3.8.5
  • 火花:火花3.0.3-bin-hadoop2.7
    • winutils.exe(添加到 bin 文件夹)

Spark 存储在:C:\spark。 Java 存储在:C:\Java 我已经在我的“环境变量:用户变量...”中添加了两者。

  • SPARK_HOME=C:\spark\spark-3.0.3-bin-hadoop2.7
  • HADOOP_HOME= C:\spark\spark-3.0.3-bin-hadoop2.7
  • JAVA_HOME=C:\Java\jdk1.8.0_202
  • PYSPARK_DRIVER_PYTHON=jupyter
  • PYSPARK_DRIVER_PYTHON_OPTS=笔记本
  • 并将 spark 和 java 的 \bin 文件路径与我的路径系统变量相对应。

我也安装了 pyspark 和 findspark。 这些代码行执行没有任何问题:

import findspark
findspark.init('C:\spark\spark-3.0.3-bin-hadoop2.7')
findspark.find()
import pyspark # only run after findspark.init()
from pyspark import SparkContext
from pyspark.sql import SparkSession

有谁知道为什么需要这么长时间才能获得 sparksession 吗?我的安装中有什么似乎不正确的地方吗?

【问题讨论】:

    标签: python java apache-spark pyspark anaconda


    【解决方案1】:

    这是我在带有 anaconda 的 Windows 机器上安装和运行 pyspark 的“秘诀”:

    先决条件:

    • 确保安装了 anaconda
    • 建议在 venv(虚拟环境)中工作
    • 安装 pyspark

    如何创建虚拟环境项目并在 venv 中安装 pyspark:

    1. 打开 anaconda cmd 提示符
    2. 创建项目目录并导航到它cd path/to/workspace && mkdir testproject && cd testproject
    3. 创建虚拟环境python -m venv venv
    4. 激活虚拟环境.\venve\Scripts\activate
    5. 在 venv 中安装 pyspark ``pip install pyspark```

    在 Windows 上为 pyspark(Spark、Hadoop)做准备

    1. 为 spark 和 hadoop 创建文件夹。例如在以下路径C:/Users/YourName/spark_setup/
    2. https://archive.apache.org/dist/spark/spark-3.2.0/ 下载 spark-3.2.0-bin-hadoop2.7.tgz 到您的 spark_setup 文件夹
    3. 使用以下命令解压到 spark_setup 文件夹tar -xvzf spark-3.2.0-bin-hadoop2.7.tgz
    4. 在您的 spark_setup 文件夹中创建一个 /hadoop/bin 文件夹。例如像这样C:/Users/YourName/spark_setup/spark-3.2.0-bin-hadoop2.7/hadoop/bin/
    5. 下载https://github.com/steveloughran/winutils/blob/master/hadoop-2.7.1/bin/winutils.exe并放入C:/Users/YourName/spark_setup/spark-3.2.0-bin-hadoop2.7/hadoop/bin/

    运行这个 python 文件

    from datetime import datetime, date
    import pandas as pd
    from pyspark.sql import Row
    from pyspark.sql import SparkSession
    import os
    
    if __name__ == '__main__':
        os.environ['PYSPARK_PYTHON'] = <path/to/workspace/testproject/venv/Scripts/python.exe>
        os.environ['HADOOP_HOME'] = "C:/Users/YourName/spark_setup/spark-3.2.0-bin-hadoop2.7/hadoop"
        spark = SparkSession.builder.getOrCreate()
        df = spark.createDataFrame([
            Row(a=1, b=2., c='string1', d=date(2000, 1, 1), e=datetime(2000, 1, 1, 12, 0)),
            Row(a=2, b=3., c='string2', d=date(2000, 2, 1), e=datetime(2000, 1, 2, 12, 0)),
            Row(a=4, b=5., c='string3', d=date(2000, 3, 1), e=datetime(2000, 1, 3, 12, 0))
        ])
        df.show(2)
    

    【讨论】:

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