package report
import config.confighelper
import org.apache.spark.rdd.rdd
import org.apache.spark.sql.
import utils.makeatpkpi
//利用sparksql進行報表分析
object traintimesparksqlanalysis
}
工具類
makeatpkpi.scala:
package utils
import org.apache.commons.lang.stringutils
import org.apache.spark.sql.row
object makeatpkpi
else
if(atperror.
equals
("無線傳輸單元"))
else
if(atperror.
equals
("應答器資訊接收單元"))
else
if(atperror.
equals
("軌道電路資訊讀取器"))
else
if(atperror.
equals
("測速測距單元"))
else
if(atperror.
equals
("人機互動介面單元"))
else
if(atperror.
equals
("列車介面單元"))
else
if(atperror.
equals
("司法記錄單元"))
else
//兩個list的拼接要用++
list[int](1
)++ listerror
}else
//建立乙個容器用來存放標籤
//兩個list的拼接要用++
//這個是為了在整合以後統計總共多少條資料用,相當於數量
val list: list[int]
= list[int](1
)++ listatperror
list
}//sql字串
val sqlstr=
"sum(if(matpbaseinfo_atperror != '',1,0)) as atperror,sum(case when matpbaseinfo_atperror = '車載主機' then 1 else 0 end) as main,"
+"sum (myif(matpbaseinfo_atperror = '無線傳輸單元') ) as wifi,"
+"sum (myif(matpbaseinfo_atperror = '應答器資訊接收單元') ) as balise,"
+"sum (myif(matpbaseinfo_atperror = '軌道電路資訊讀取器') ) as tcr,"
+"sum (myif(matpbaseinfo_atperror = '測速測距單元') ) as speed,"
+"sum (myif(matpbaseinfo_atperror = '人機互動介面單元') ) as dmi,"
+"sum (myif(matpbaseinfo_atperror = '列車介面單元') ) as tiu,"
+"sum (myif(matpbaseinfo_atperror = '司法記錄單元') ) as jru"
}
#配置檔案
#配置壓縮格式
parquet.code=
#配置序列化方式
spark.serializer=
"org.apache.spark.serializer.kryoserializer"
#配置jdbc鏈結
jdbc.url=
"jdbc:mysql://localhost:3306/test?characterencoding=utf-8"
jdbc.driver=
"com.mysql.jdbc.driver"
jdbc.user=
"root"
jdbc.password=
"000000"
#配置scalikejdbc鏈結
db.default
.url=
"jdbc:mysql://localhost:3306/test?characterencoding=utf-8"
db.default
.driver=
"com.mysql.jdbc.driver"
db.default
.user=
"root"
db.default
.password=
"000000"
confighelper.scala:
package config
import com.typesafe.config.
object confighelper
利用Project進行工時等的報表統計
利用project制定報表不但很方便,而且有很強大的報表統計功能。主要的方法是 project中自帶了開始時間 完成時間 實際開始時間 實際完成時間等字段,但在實際填寫進度時,當修改了實際完成時間時會把完成時間也附帶修改了。我們可以在填寫好開始時間 完成時間後,選擇工具 跟蹤 設定比較基準 這樣就會...
Spark SQL使用window進行統計
def main args array string unit 按照地市進行統計top3課程 param spark param accessdf def citytypeaccesstopnstat spark sparksession,accessdf dataframe unit 執行結果如下...
利用NLTK sklearn進行垃圾郵件分類
利用nltk來進行資料處理和提取特徵,再交由sklearn進行機器學習訓練分類器,嘗試了多個機器學習演算法並評價分類效能。上 import nltk from nltk.corpus import stopwords from nltk.stem import wordnetlemmatizer i...