SparkContext是任何spark功能的入口点,sc。
class pyspark.SparkContext (
master = None, #连接到的集群的URL
appName = None, #工作名称
sparkHome = None,
pyFiles = None, #要发送到集群并添加到PYTHONPATH的.zip或.py文件
environment = None, #工作节点环境变量
batchSize = 0, #为单个Java对象的Python对象的数量。设置1以禁用批处理,设置0以根据对象大小自动选择批处理大小,或设置为-1以使用无限批处理大小
serializer = PickleSerializer(), #RDD序列化器。
conf = None, #L {SparkConf}的一个对象,用于设置所有Spark属性
gateway = None,
jsc = None,
profiler_cls = <class 'pyspark.profiler.BasicProfiler'>
)
case:
from pyspark import SparkContext
def lcut(line):
return jieba.lcut(line)
sc = SparkContext(master="local", appName="First App")
# sparkConf = SparkConf().setAppName('Python').setMaster('local') 或者这样
# sc = SparkContext(conf=sparkConf)
text = sc.textFile("file:/root/.../A.txt")
# 是file:/root/.../A.txt MapPartitionsRDD[1] at textFile at NativeMethodAccessorImpl.java:0
word_list = text.map(lcut).collect() #比直接for loop快将近一倍
速度对比:
RDD(Resilient Distributed Dataset),它们是在多个节点上运行和操作以在集群上进行并行处理的元素。主要有Transformation(如Filter、groupBy、map)和Action两种操作 https://codingdict.com/article/8883
word_list= sc.parallelize(word_list) #其实原本就是RDD了,现在是变成并行化
print(word_list.count())
文件操作大全 https://blog.csdn.net/wc781708249/article/details/78251701