1. 问题:PySpark运行时出现乱码问题。
问题描述:PySpark运行出现乱码问题如下图所示。
1.1 解决方法(1):将全局编码从utf-8改为GBK。
在Pycharm设置 -> 编辑器 -> 文件编码 -> 全局编码,将全局编码从utf-8改为GBK。1
1.2 解决方法(2):安装Java,配置Java环境变量。
步骤:前往ORACLE官网->Products->Java->Download Java->选择对应的Java安装包下载,解压->配置java环境变量。
前往ORACLE官网。
选择对应的Java安装包下载。
解压后如图所示。
配置环境变量:控制面板->系统和安全->系统->系统信息->高级系统设置->系统属性->高级->环境变量。
1.先配置JAVA_HOME。(路径不带bin)。
系统变量->新建
2.再编辑Path环境变量,增加。(%JAVA_HOME%\bin)。
系统变量找到Path->编辑环境变量,新建%JAVA_HOME%\bin
2.问题:PySpark运行时系统找不到指定路径。
问题描述:如下图所示,PySpark运行时系统找不到指定路径。2
2.1 解决方法:安装Java,配置Java环境变量。(见本文1.2)
3.问题:PySpark运行时报错WARN Shell: Did not find winutils.exe: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.
问题描述:如下图所示。
报错解释:
(1)Did not find winutils.exe: 这条警告表示系统没有找到winutils.exe文件。winutils.exe是Hadoop在Windows平台上运行时需要的一个工具,用于模拟Unix系统的一些文件系统操作。这个错误通常发生在Windows操作系统上,因为默认情况下Hadoop是为类Unix系统(如Linux和macOS)设计的。
(2)java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset.: 这表示环境变量HADOOP_HOME没有被设置,或者hadoop.home.dir配置项没有在Hadoop的配置文件中指定。这些环境变量和配置项用于告诉Hadoop和相关的工具(如Spark)在哪里可以找到Hadoop的安装和配置文件。
(3)Unable to load native-hadoop library for your platform… using builtin-java classes where applicable: 这条警告表示无法加载针对你的平台编译的Hadoop本地库,因此将使用纯Java编写的内置类。这可能会导致性能下降,因为本地库通常提供优化的系统调用。
PySpark 一般会与 Hadoop 环境一起运行 , 如果在 Windows 中没有安装 Hadoop 运行环境 , 就会报上述错误。
3.1解决方法:安装Hadoop及配置环境变量。3 4 5
安装Hadoop。
下载地址:https://hadoop.apache.org/releases.html
解压Hadoop安装包。
配置Hadoop环境变量。
1.新建系统环境变量。
Hadoop=解压后的绝对路径
2.在 Path 环境变量中 , 增加
%HADOOP_HOME%\bin
%HADOOP_HOME%\sbin
如图所示
将Hadoop解压后的etc文件夹中的hadoop\hadoop-env.cmd 脚本中的 JAVA_HOME 为真实的 JDK 路径。(见本文1.2)
将Hadoop解压后的bin文件夹中的 hadoop.dll 和 winutils.exe 文件拷贝到 C:\Windows\System32 目录中。(如果下载的安装包里缺少该文件,下载缺少的文件复制到文件夹中,github链接:用于Windows上的hadoop各种版本对应的hadoop.dll和winutils.exe文件)
重启电脑,然后在命令行中,执行
hadoop -version
验证 Hadoop 是否安装完成
参考
[1]解决windows平台pycharm中pyspark运行出现乱码问题
[2]pyspark “系统找不到指定的路径”
[3]【错误记录】PySpark 运行报错 ( Did not find winutils.exe | HADOOP_HOME and hadoop.home.dir are unset )
[4]windows运行saprk程序:Did not find winutils.exe、Could not locate Hadoop executable:
[5]【免费】各种hadoop版本对应的hadoop.dll和winutils.exe