import os
配置spark driver和pyspark运行时,所使用的python解释器路径
由于miniconda3中默认存在一个python3.7的版本,jupyter默认也使用的是这个版本,故:设置pyspark的解释器为miniconda3的解释器
PYSPARK_PYTHON = “/root/miniconda3/bin/python3”
JAVA_HOME=’/root/bigdata/jdk1.8.0_181’
当存在多个版本时,不指定很可能会导致出错
os.environ[“PYSPARK_PYTHON”] = PYSPARK_PYTHON
os.environ[“PYSPARK_DRIVER_PYTHON”] = PYSPARK_PYTHON
os.environ[‘JAVA_HOME’]=JAVA_HOME
spark配置信息
from pyspark import SparkConf
from pyspark.sql import SparkSession
SPARK_APP_NAME = “preprocessingBehaviorLog”
SPARK_URL = “spark://192.168.199.126:7077”
conf = SparkConf() # 创建spark config对象
config = (
(“spark.app.name”, SPARK_APP_NAME), # 设置启动的spark的app名称,没有提供,将随机产生一个名称
(“spark.executor.memory”, “2g”), # 设置该app启动时占用的内存用量,默认1g
(“spark.master”, SPARK_URL), # spark master的地址
(“spark.executor.cores”, “2”), # 设置spark executor使用的CPU核心数
# 以下三项配置,可以控制执行器数量
(“spark.dynamicAllocation.enabled”, True),
(“spark.dynamicAllocation.initialExecutors”, 1), # 1个执行器
(“spark.shuffle.service.enabled”, True)
(‘spark.sql.pivotMaxValues’, ‘99999’), # 当需要pivot DF,且值很多时,需要修改,默认是10000
)
查看更详细配置及说明:https://spark.apache.org/docs/latest/configuration.html
conf.setAll(config)
利用config对象,创建spark session
spark = SparkSession.builder.config(conf=conf).getOrCreate()
从hdfs中加载csv文件为DataFrame