1:反射 case class方式
此方式必須先知道資料型別與字段,定義class,
case class people(name:string,age:int,classname:int)
再轉換rdd
val rdd=spark.sparkcontext.textfile(「f:
import spark.implicits._
val df=rdd.map.map(line=>people(line(0).tostring(),line(1).toint,line(2).toint)).todf()
此時可以根據sql方式查詢
df.createorreplacetempview(「p」)
spark.sql(「select * from p」).show()
也可以根據api方式查詢
df.filter(df.col(「age」)>10).show()
2:程式設計 row方式
此時不知道資料型別與字段
val rdd1 = rdd.map.map(line=>row(line(0).tostring(),line(1).toint,line(2).toint))
row方式需要定義schema
val schemadf=structtype(array(
structfield(「name」,stringtype,true),
structfield(「age」,integertype,true),
structfield(「class」,integertype,true)
))使用spark.createdataframe(rdd1,schemadf)將rdd與dataframe相關聯
在進行查詢即可,此方式同樣存在api查詢與sql查詢
建議程式設計中使用反射方式
spark RDD程式設計
rdd就是乙個不可變的分布式物件集合。建立rdd 1 讀取乙個外部資料集 sparkcontext.textfile 2 在驅動器程式中對乙個集合進行並行化。rdd 操 作 1 轉 化 操 作 transformation 會由乙個 rdd 生成乙個新的 rdd。2 行 動 操 作 action 會...
python中將多個列表轉成dataframe
python中將列表轉換成為資料框有兩種情況 第一種是兩個不同列表轉換成乙個資料框,第二種是乙個包含不同子列表的列表轉換成為資料框。第一種 兩個不同列表轉換成為資料框 from pandas.core.frame import dataframe a 1 2,3 4 列表a b 5 6,7 8 列表...
Spark RDD使用原則
如今隨著資料量的不斷增加,hadoop已經難以滿足處理需求,逐漸發展起來的spark基於記憶體的平行計算已經得到了廣泛的應用。spark博大精深,編寫起來比hadoop方便很多,簡單的幾行 就可以實現hadoop複雜的 簡單方便!著名的例子就是單詞統計。對於spark效能的調優部分可以檢視美團點評團...