在Windows 10上安装Apache Spark

由于各种功能无法使用,因此我需要备忘录记录下来。

前提

image.png

在中国,以中文为母语的情况下,只需提供一个选项:
安装 Apache Spark。

下载 spark-3.4.1-bin-hadoop3.tgz 文件并在任意文件夹中解压
将解压后的文件夹路径添加为 SPARK_HOME 环境变量

Hadoop 的安装

下载hadoop-3.3.0.tar.gz,并在任意文件夹中解压。
由于使用7-zip出现错误(可能只是我想象的),所以使用命令进行解压。

tar -xvzf hadoop-3.3.0.tar.gz -C 解凍先フォルダ

將解凍的文件夾路徑設置為 HADOOP_HOME,並將其添加到環境變量中。

Java 安装

有一些功能似乎需要将 JAVA_HOME 添加到环境变量中才能正常工作。例如,如果将 spark_df=pyspark.sql.dataframe.DataFrame ,那么 spark_df.write 就是一个例子。

安装winutils

从Git中签出

git clone https://github.com/ruslanmv/How-to-install-Hadoop-on-Windows.git

将”How-to-install-Hadoop-on-Windows\winutils\bin”复制到HADOOP_HOME(覆盖bin文件夹)。

让路径通畅

假设Java已经配置好,将以下路径添加到path中:
SPARK_HOME\bin
HADOOP_HOME\bin

确认

Apache Spark是一个开源的大数据处理框架。

spark-submit --version  
image.png

Hadoop – 哈多普

hadoop version  
image.png

遇到无法动作的情况时的应对措施。

在PySpark中执行show()函数时出现了SocketTimeoutException异常。

错误内容 (Incorrect content)

Py4JJavaError: An error occurred while calling o44.showString.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0) (2112N-14046.jp.misumi.pri executor driver): org.apache.spark.SparkException: Python worker failed to connect back.
<-- 中略 -->
Caused by: java.net.SocketTimeoutException: Accept timed out

对策:添加以下内容

import findspark 

findspark.init()
findspark.find()

在执行 to_pandas() 时发生 UnknownTimeZoneError 错误。

错误内容 (Error content)

UnknownTimeZoneError Traceback (most recent call last) Input In [43], in <cell line: 1>() ----> 1 df_pandas = spark_df.toPandas()

解决方案:在创建Spark会话时指定时区

spark = SparkSession.builder.appName("アプリ名").config("spark.sql.session.timeZone", "Asia/Tokyo").getOrCreate()

请参考

 

广告
将在 10 秒后关闭
bannerAds