添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

我们在这里创建了一个RDD,它包含元组元素,然后调用它的toDF()方法。请注意,toDF采用的是元组列表,而不是标量元素。每个元组类似于一行。我们可以选择列名,否则,Spark会自行创建一些模糊的名称,比如_1、_2。列的类型推断是隐式的。例如:

# list
persons = [("张三",23),("李四",18),("王老五",35)]
# RDD
personRDD = spark.sparkContext.parallelize(persons)
# from RDD to DataFrame
personsDF = personRDD.toDF()
# 查看模式和数据
personsDF.printSchema()
personsDF.show()
print(personsDF.dtypes) 		# 注意其中的隐式类型推断
# RDD[Row]
personRDD = spark.sparkContext.parallelize(persons).map(lambda t: Row(stu_name=t[0],stu_age=t[1]))
# from RDD to DataFrame
personsDF = personRDD.toDF()
# 查看模式和数据
personsDF.printSchema()
personsDF.show()
print(personsDF.dtypes) 		# 注意其中的隐式类型推断
    StructField("id", LongType(), True), 
    StructField("name", StringType(), True),
    StructField("age", LongType(), True)
schema = StructType(fields) 
# 构造一个RDD
peopleRDD = sc.parallelize([(1,"张三",30),(2, "李小四", 25),(3, "王老五", 35)])
# 从给定的RDD应用给定的Schema创建一个DataFrame
peopleDF = spark.createDataFrame(peopleRDD, schema)
# 查看DataFrame Schema
peopleDF.printSchema()
peopleDF.show()
# 构建SparkSession和SparkContext实例
spark = SparkSession.builder \
   .master("spark://xueai8:7077") \
   .appName("pyspark pandas demo") \
   .getOrCreate()
# 从Pandas创建PySpark DataFrame
sparkDF = spark.createDataFrame(pandasDF) 
sparkDF.printSchema()
sparkDF.show()
from pyspark.sql.types import StructType,StructField, StringType, IntegerType
# 使用StructType创建用户自定义模式
mySchema = StructType([ 
    StructField("姓名", StringType(), True),
    StructField("年龄", IntegerType(), True)
# 创建DataFrame时指定模式
sparkDF2 = spark.createDataFrame(pandasDF, schema=mySchema)
sparkDF2.printSchema()
sparkDF2.show()