通过StructType直接指定Schema
1、当case class不能提前定义时,可以通过以下三步创建DataFrame
- 1、将RDD转为包含row对象的RDD
- 1、基于structType类型创建schema,与第一步创建的RDD相匹配
- 2、通过sparkSession的createDataFrame方法对第一步的RDD应用
schema创建DataFrame
2、代码实现
maven依赖同Spark SQL程序实现RDD转换DataFrame(一)
package cn.cheng.sql
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType}
import org.apache.spark.sql.{DataFrame, Row, SparkSession}