在实际使用Spark做集群运算的时候我们会遇到很多实际的问题,特记录下来,本文主要讲解关于Spark读文件为RDD ,然后RDD转DataFrame,然后将RDD存为文件,以及如何保存DataFrame到文件
from pyspark.sql import SparkSession
def CreateSparkContext():
# 构建SparkSession实例对象
spark = SparkSession.builder \
.appName("SparkSessionExample") \
.master("local") \
.getOrCreate()
# 获取SparkContext实例对象
sc = spark.sparkContext
return sc
def save_rdd_to_file(rdd,path):
#保存RDD数据,这里指定的路径tmp2文件夹必须是不存在的,否则会报错,因为创建的时候会自动创建
return rdd.saveAsTextFile(path)
def read_file_to_RDD(sc,files_path):
return sc.textFile(files_path)
def transform_rdd_to_DF(rdd,columns_list):
df=rdd.toDF(columns_list)
return df
def save_DF(df,path,sep="|"):
#将df保存输出的时候coalesce(1)的意思就是将输出到文件都放在一起而不进行拆分,如果不指定在大数据量的情况下文件输出会自动拆分
df.coalesce(1).write.csv(path=path, header=False, se