第一步:创建Spark对象
sc = SparkContext(appName="PythonWordCount")
第二步:获取数据并将数据并行化(这里直接List())
data= List("i","love","spark","do","you","love","spark","too")
RDD= sc.parallelize(data)
第三步:对RDD进行处理var re=RDD.map((_,1)).reduceByKey(_+_).collect()
第四步:打印输出
print(re)
map的参数是一个,假如List()有100 TG,master主机会将这些数据分片,分成10000个(这里假设哦,可调的)然后发放到各个slave上
sc.parallelize(data)这段代码就是这个意思。接着map,一般情况下会从hdfs中读取文件,每读一次就是一行,map这个参数就是接受这一行数据然后对这一行数据进行处理
,本例子中么有从hdfs 中读,map的参数传进来的就是List()中的一个元素,map里面填的(_,1)其实就是一个匿名函数,也可以自己写一个函数,然后将函数名写进来。map
里面的匿名函数意思是,每接受一个参数,就将这个参数以《K,V》的形式返回,K就是List中的单词,词频为1,每一个计算节点都会执行map函数