rdd转为df
方法一;
使用样例类
case class Person(id:Int,name:String,age:Int)
var z=x.map(y=>var arr:Array[String]=y.split(",") Person(arr(0).toInt,arr(1),arr(2).toInt))
import spark.implicits._
val persondf=z.toDF()
方法二:
指定类型+列名
var z=x.map(y=>var arr:Array[String]=y.split(",")
(arr(0).toInt,arr(1),arr(2).toInt)
)
import spark.implicits._
val persondf=z.toDF(“id”,“name”,“age”)
方法三:
自定义schema
var rowrdd=x.map(y=>var arr:Array[String]=y.split(",")
Row(arr(0).toInt,arr(1),arr(2).toInt)
)
val schema=StructType(
List(
StructField(“id”,InterType,false),
StructField(“name”,StringType,false),
StructField(“age”,InterType,false),
)
)
val schema=StructType(
StructField(“id”,InterType,false)::
StructField(“name”,StringType,false)::
StructField(“age”,InterType,false)::Nil
)
spark。createDataframe(rowrdd,schema)