利用sparksql進行報表分析

2021-09-29 18:44:57 字數 2596 閱讀 6832

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...