Windows 11系统下运行PySpark时如何消除各类警告提示
PySpark启动警告消除方案
1. 解决Java非法反射访问警告
开头5条反射相关的WARNING是Java 9及以上版本的模块权限限制导致的,可选两种解决方式:
- 切换本地Java版本为Java 8,可完全消除该类警告
- 在创建SparkSession时添加JVM启动参数,无需更换Java版本
2. 消除Spark运行日志警告
NativeCodeLoader这类运行时WARN提示,可选两种解决方式:
- 修改Spark配置文件:
进入C:\opt\spark\spark-3.2.0-bin-hadoop3.2\conf目录,将log4j.properties.template重命名为log4j.properties,打开文件找到log4j.rootCategory配置项,将值修改为ERROR, console,保存后重启Spark即可生效 - 代码内直接设置日志级别:创建SparkSession后新增一行设置代码即可
3. 消除输出末尾的None
df.show()方法本身已经会打印DataFrame内容,无需在外层套print(),去掉外层print()即可
修改后可直接使用的完整代码
from pyspark.sql import SparkSession # 新增JVM参数解决反射警告 spark = SparkSession.builder \ .appName('project1') \ .config('spark.driver.extraJavaOptions', '--illegal-access=permit --add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/sun.nio.ch=ALL-UNNAMED') \ .getOrCreate() # 设置日志级别,仅输出错误信息 spark.sparkContext.setLogLevel("ERROR") df_pyspark = spark.read.csv('test_file.txt') # 去掉外层print,避免输出多余None df_pyspark.show()
内容的提问来源于stack exchange,提问作者Al-Andalus
相关产品推荐
相关产品推荐

