pycharm运行第一个pyspark程序
·
一、环境搭建
2、python3.7安装并配置环境变量;3.7以上版本在后期运行时容易出现问题;
3、pycharm对应python文件配置PYTHONPATH;
二、pycharm运行一个pyspark程序
1、先在cmd中使用pip安装pyspark和findspark,方便导入调用
pip install pyspark
pip install findspark
2、项目结构

3、pycharm的python环境配置

4、代码
from pyspark import SparkConf
from pyspark import SparkContext
import findspark
findspark.init()
conf=SparkConf().setAppName("pysparkTest").setMaster("local[*]")
sc=SparkContext.getOrCreate(conf)
rdd=sc.parallelize([1,2,3,4])
rdd1=rdd.map(lambda s:s*2)
print(rdd1.collect())
5、运行中出现的问题
问题一:
21/06/17 14:24:46 WARN Shell: Did not find winutils.exe: {}
java.io.FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset. -see https://wiki.apache.org/hadoop/WindowsProblems
解决办法:
1:下载对应版本winutils.exe文件。
2:将文件放到到hadoop的bin目录下。
3:将hadoop.dll复制到C:\Window\System32下。
4:添加环境变量HADOOP_HOME,指向hadoop目录 。
5:将%HADOOP_HOME%\bin加入到path里面。
6:重启pycharm;
问题二:
py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.isEncryptionEnabled does not exist in the JVM
解决办法:
1)、pycharm配置PYTHONPATH


D:\tools\spark-2.4.7-bin-hadoop2.7\python;D:\tools\spark-2.4.7-bin-hadoop2.7\python\lib\py4j-0.10.7-src.zip
2)、在从pyspark导入SparkConf之前先执行下面的语句:
import findspark
findspark.init()
作用就是初始化找到本机安装的spark的环境;
问题三:
TypeError: an integer is required (got type bytes)
解决办法:
由于刚开始安装python环境为3.9太高,降低为3.7就解决了;
更多推荐
所有评论(0)