一、将RDD转换得到DataFrame
RDD=>DataFrame,有三种情况两种方法,分别通过SparkSession对象的createDataFrame方法和RDD的toDF方法,转换生成DataFrame。
第一种情况,已知RDD的数据结构,采用createDataFrame()方法生成DataFrame。
#假设导入数据集为Data.txt,内容如(Mark,30)
#导入相关库
from pyspark.sql import Row
from pyspark import SparkContext,SparkConf
sc = spark.sparkContext
#构建rdd
rdd = sc.textFile("Data.txt")\
.map(lambda x: x.split(","))\
.map(lambda x: Row(name=x[0],age=int(x[1]))) #生成Row对象,相当于赋予了rdd数据结构
#将rdd转换成DataFrame
df = spark.createDataFrame(rdd)
第二种情况,不知RDD的数据结构,采用createDataFrame()方法生成DataFrame。
#生成表头
schemastring = "name age"
fileds = [StructFiled(filed_name,StringType(),True) for filed_name in schemaString.split(" ")] #用for in遍历生成列名
schema = StructType(fileds)
#构建rdd
rdd = sc