需求:
對df1 和 df2 連個檔案程序處理,將在df1 裡編號並且不在 df2 裡編號的資料取出。
df1.txt:
1 wxk 44
2 panda 55
3 monkey 66
4 tiger 33
df2.txt:
2 china
3 usa
結果如下:
+---+-----+-----+
| id| name|score|
+---+-----+-----+
| 1| wxk| 44|
| 4|tiger| 33|
+---+-----+-----+
**如下:
package zuoye11_22
import org.apache.spark.sql.sparksession
/** * 用來將df1 - df2 ,對df1 進行一些過濾
* 2017.11.12
*/object
df1minusedf2
/*** df1 - df2 的功能
* 採用不同方式進行操作,進行對比
* 採用case class 的方式 不建議這麼用
* * @param spark
*/private
def runudfdf1minusedf2(spark: sparksession): unit = ).todf()
val df2 = spark.sparkcontext.textfile( "d:/test/df2.txt" )
.map( _.split( "\t" ) ).map( x => ).todf()
//檢視df的結構
// df1.printschema()
// df2.printschema()
//方法一:
//進行集合減操作
// df1.createorreplacetempview( "df1_table" )
// df2.createorreplacetempview( "df2_table" )
// spark.sql( " select a.id from df1_table a " ).show
// spark.sql( " select b.id from df2_table b " ).show
//用in 的方式,先得到乙個只有id的集合,再用in去匹配
" select * from df1_table c where c.id in (select a.id from df1_table a minus select b.id from df2_table b) " ).show
//用leftjoin 方式
// spark.sql( "select dd.id,dd.name,dd.score from " +
// "(select * from " +
// "(select aa.*,bb.id as tmp from df1_table aa left join df2_table bb on aa.id=bb.id) cc" +
// " where cc.tmp is null) dd " ).show()
//方法二:
//採用 dataframe 相關運算元,這種方式不需要建臨時表,建議使用
df1.join(df2,array("id"),"left_outer").filter("loc is null").select("id","name","score").show()
} //採用 case class 方式去建 dataframe
case
class
df1_structure
(id: int, name: string, score: string)
case
class
df2_structure
(id: int, loc: string)
}
大資料學習
1.資料清洗 洗掉髒資料,對資料最後一步審核和糾正,包括一致性檢查,無效資料,不完整資料,衝突資料,重複資料等的處理,計算機自動完成。2.資料傾斜 資料傾斜就是我們在計算資料的時候,資料的分散度不夠,導致大量的資料集中到了一台或者幾台機器上計算,這些資料的計算速度遠遠低於平均計算速度,導致整個計算過...
大資料學習
hadoop的hdfs和mapreduce子框架主要是針對大資料檔案來設計的,在小檔案的處理上不但效率低下,而且十分消耗記憶體資源 每乙個小檔案占用乙個block,每乙個block的元資料都儲存在namenode的記憶體裡 解決辦法通常是選擇乙個容器,將這些小檔案組織起來統一儲存。hdfs提供了兩種...
大資料如何學習 cda認證 大資料學習之學習要求
眾所周知,大資料是現在非常火的行業,前景也是非常的不錯,大資料要處理的資料成千上萬,資料的處理方法也需要不斷地與時俱進。就現如今的發展趨勢而言,大資料技術的發展如火如荼。在各個領域都得到了廣泛的應用,而且就其目前的發展情況來看,大資料技術具有十分良好的發展前景。正因為這樣,很多人想要學習大資料,對於...