1.dataframe與rdd互操作方式一:反射方式
(1)使用反射來推斷包含了特定資料型別的rdd的元資料
(2)使用dataframe api或者sql方式程式設計
//新增隱式轉換
import spark.implicits._
//建立乙個rdd
val rdd = spark.sparkcontext.textfile("***")
//轉換為df
val peopledf = rdd.map(_.split(",")).map(line => info(line(0).toint,line(1),line(2).toint)).todf()
case class info(id: int, name: string, age: int)
2.程式設計方式
使用程式設計介面,構造乙個schema並將其應用在已知的rdd上。
//建立乙個rdd
val rdd = spark.sparkcontext.textfile("***")
//轉換rdd的record為row
val infordd = rdd.map(_.split(",").map(line => row(line(0).toint, line(1),line(2).toint))
//建立乙個schema
val structtype = structtype(array(structfield("id",intergertype,true),structfield("name",stringtype,true),structfield("age",intergertype,true)))
//將schema應用於rdd
val infodf = spark.createdataframe(infordd,structtype)
dataframe和rdd互操作的兩種方式
1)反射:case class 前提:事先知道你的字段、字段型別
2)程式設計:row事先不知道列
3)選型:優先第一種
spark RDD與dataframe互操作
1 反射 case class方式 此方式必須先知道資料型別與字段,定義class,case class people name string,age int,classname int 再轉換rdd val rdd spark.sparkcontext.textfile f import spar...
基於RDD建立DataFrame
spark sql支援兩種不同的方法用於轉換已存在的rdd成為dataset。第一種方法是使用反射去推斷乙個包含指定的物件型別的rdd的schema。在你的spark應用程式中當你已知schema時這個基於方法的反射可以讓你的 更簡潔。不過這種方法要求你在寫程式時已經知道rdd物件的結構資訊,因為需...
RDD轉換成DataFrame的兩種方式
spark sql支援兩種不同的方式將rdd轉換為dataframe。第一種是使用反射來推斷包含特定型別物件的rdd的模式,這種基於反射的方式可以提供更簡潔的 如果在編寫spark應用程式時,已經明確了schema,可以使用這種方式。第二種方式是通過可程式設計介面來構建schema,然後將其應用於現...