基于SQL和DSL的WordCount經(jīng)典案例編程實戰(zhàn)(附代碼)
使用SparkSession加載文本數(shù)據(jù),封裝到Dataset/DataFrame中,調(diào)用API函數(shù)處理分析數(shù)據(jù)(類似RDD中API函數(shù),如flatMap、map、filter等),編程步驟:
第一步、構(gòu)建SparkSession實例對象,設(shè)置應(yīng)用名稱和運行本地模式;
第二步、讀取HDFS上文本文件數(shù)據(jù);
第三步、使用explode將單列擴展成多行,比如select explode(subordinates) from employees;
SparkSQL WordCount 基于SQL編程編程步驟
也可以實現(xiàn)類似HiveQL方式進行詞頻統(tǒng)計,直接對單詞分組group by,再進行count即可,步驟如下:
第一步、構(gòu)建SparkSession對象,加載文件數(shù)據(jù),分割每行數(shù)據(jù)為單詞;
第二步、將DataFrame/Dataset注冊為臨時視圖(Spark 1.x中為臨時表);
第三步、編寫SQL語句,使用SparkSession執(zhí)行獲取結(jié)果;
第四步、控制臺打印結(jié)果數(shù)據(jù)和關(guān)閉SparkSession;
完整代碼
代碼實現(xiàn):通過RDD轉(zhuǎn)換為DF,通過SQL和DSL分別實現(xiàn)WordCount
代碼實現(xiàn):通過explode函數(shù)完成統(tǒng)計操作:?DSL? ?SQL? 以及?DSL+SQL混用
