进行数据清洗:
transformer.py
from pyspark import SparkContext
def main():
sc=SparkContext(appName="tranformer_counter")
raw=sc.textFile("file:///root/spark/transformer.csv")
rdd=raw.map(lambda x:x.split(",")[1:3])\
.map(lambda x:(x[0],int(x[1])))\
.map(lambda x:(x[0],"S" if x[1]<630 else "M" if x[1]<8000 else "L"))\
.distinct()\
.map(lambda x:(x[1],1))\
.reduceByKey(lambda x,y:x+y)\
.sortByKey()
#只保留第2和第3的数据
#将数据变成(key,value)
#进行数据的划分,小S中M大L
#去重
#计数
#将数据变成(key,1)
#进行计数
#按照数量排序
print(rdd.collect())
sc.stop()
if __name__=="__main__":
main()
打开一个窗口
运行:spark-submit transformer.py