pyspark修炼手册(长期帖)

  • 2020.03.31

  在进行pyspark开发时,需要先安装hadoop、spark的环境,或者只安装spark环境即可。配置集群or单机环境都可以,在配置好环境后,不需要单独启动hadoop/spark,直接运行pyspark程序即可。
  一个脚手架

'''
在win环境下,若出现了:
py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled does not exist in the JVM 
则需要用到findspark插件。
'''
import findspark
findspark.init()
from pyspark.sql import SparkSession
# SparkContext是spark功能的入口,SparkContext使用Py4J启动 JVM 并创建 JavaSparkContext
# 当我们运行任何Spark应用程序时,启动一个驱动程序,它具有main函数,并在此处启动SparkContext。然后,驱动程序在工作节点上的执行程序内运行操作。
from pyspark import SparkContext
# 默认情况下,PySpark将SparkContext作为 'sc'提供 ,因此创建新的SparkContext将不起作用
# sc.stop()当在程序中sc被多次创建的时候,程序会报错;可以使用sc.stop()来中断已经创建的sc
sc = SparkContext("xxx","xxx")
spark = SparkSession.builder.master('xxx').appName("xxx").getOrCreate()

pyspark修炼手册(长期帖)_第1张图片

class pyspark.SparkContext (
   master = None,	#它是连接到的集群的URL
   appName = None,	#您的工作名称
   sparkHome = None,	#Spark安装目录
   pyFiles = None,		#要发送到集群并添加到PYTHONPATH的.zip或.py文件
   environment = None,	#工作节点环境变量
   batchSize = 0,	#表示为单个Java对象的Python对象的数量。 设置1以禁用批处理,设置0以根据对象大小自动选择批处理大小,或设置为-1以使用无限批处理大小
   serializer = PickleSerializer(), #RDD序列化器
   conf = None,		# L {SparkConf}的一个对象,用于设置所有Spark属性
   gateway = None,	#使用现有网关和JVM,否则初始化新JVM
   jsc = None,		#JavaSparkContext实例
   # 用于进行性能分析的一类自定义Profiler(默认为pyspark.profiler.BasicProfiler)。在上述参数中,主要使用 master 和 appname 
   profiler_cls = <class 'pyspark.profiler.BasicProfiler'>
)

参考:

  • http://codingdict.com/article/8882

  在Spark2之后,DataFrame和DataSet进行了API融合,SparkContext也就融合进SparkSession中。因此在2.0版本之后,SparkSession就成为了Spark程序的主入口。
  关于SparkSession的使用可以参考以下博客:

  • https://blog.csdn.net/cjhnbls/article/details/79254188
  • https://www.cnblogs.com/piperck/p/10446720.html

你可能感兴趣的:(大数据,Python)