產(chǎn)品和運(yùn)營如何利用MLSQL完成excel處理

概覽

MLSQL Console 是一款集數(shù)據(jù)研發(fā)部逮,數(shù)據(jù)分析,機(jī)器學(xué)習(xí)等于一體Web產(chǎn)品嫂易。他的目標(biāo)是讓產(chǎn)品兄朋,運(yùn)營,分析師怜械,研發(fā)颅和,算法等都有一個統(tǒng)一的數(shù)據(jù)工作臺。這篇文章重點(diǎn)面向產(chǎn)品和運(yùn)營缕允,在該文章中峡扩,他們會學(xué)習(xí)到如何在該平臺上操作excel,關(guān)聯(lián)多個excel,同時將結(jié)果進(jìn)行圖表化障本。

工作區(qū)介紹

image.png
image.png

快捷菜單區(qū)可以自動幫我們生成MLSQL語句教届,一般而言,用戶只需要自己能夠手動寫一些select 語句即可彼绷。

該文章可在try.mlsql.tech 體驗(yàn)

image.png

登錄賬號:

demo@gmail.com
123456

待處理數(shù)據(jù)描述

有兩個excel文件:

image.png

內(nèi)容分別如下:

image.png
image.png

第一個excel有每天每個科室的接待病人的數(shù)量。第二個excel有主任和對應(yīng)的郵箱茴迁。

分析任務(wù)列表

現(xiàn)在我們的目標(biāo)是:

  1. 繪制每個科室每天接收到病人的分布圖寄悯,從而方便查看兩個科室的就診人數(shù)的分布情況。
  2. 找到日均就診病人最多的那個醫(yī)生的郵箱
  3. 將我們的分析結(jié)果保存成新的excel堕义,并且下載到自己電腦猜旬。

任務(wù)一

我們大致會分成四個步驟:

  1. 將excel文檔上傳脆栋,上傳完成后下載到自己的工作區(qū)得到操作路徑
  2. 加載excel文件,然后給他們?nèi)”砻?/li>
  3. 使用SQL對這些excel進(jìn)行數(shù)據(jù)操作
  4. 使用SQL生成圖標(biāo)

下面我們看下具體步驟:

Step1:上傳文件(在try.mlsql.tech可略過)

打開操作界面的 Tools/Dashboard,然后拖拽excel-example(目錄里包含了兩個示例excel)到上傳區(qū)進(jìn)行上傳操作:

image.png

上傳成功后洒擦,即可在/tmp/upload目錄查看到椿争。你也可以通過如下指令確認(rèn):

!hdfs -ls /tmp/upload;

Step2: 加載Excel并且查看

接著我們要加載我們的excel,把它們轉(zhuǎn)化為SQL能操作的表熟嫩。拖拽 Load data到編輯區(qū):

image.png

填寫路徑以及表名秦踪。表名隨意,只要你自己記得就行掸茅。點(diǎn)擊Ok椅邓,那么就能生成對應(yīng)的語句了。
同理完成另外一個腳本的處理昧狮。

這個時候你已經(jīng)可以通過表名來查看內(nèi)容了:

image.png

excel里的內(nèi)容能夠被正確的展示景馁。

Step3: 對數(shù)據(jù)做預(yù)處理

現(xiàn)在我們開始用SQL繪圖,我們需要的是折線圖逗鸣,橫坐標(biāo)是date, 縱坐標(biāo)是patientNum兩條曲線合住,分別是眼科和皮膚科。眼科對應(yīng)的patientNum我們?nèi)∶衴1,皮膚科對應(yīng)的patientNum叫y2撒璧。為了方便透葛,我們先把把皮膚科的都過濾出來,然后y1設(shè)置為0,y2設(shè)置為實(shí)際的病人數(shù)沪悲,
同理眼科获洲,然后把這些數(shù)據(jù)放到一起,最后的SQL大致如下:

select date  as x, 0 as y1, patientNum as y2 from triagePatient where triage="皮膚科"
union all
select date  as x, patientNum as y1, 0 as y2 from triagePatient where triage="眼科" 
as tempTable;

Step4: 生成圖表并分析

select x,sum(y1) as `眼科`,sum(y2) as `皮膚科`, 
-- 告訴系統(tǒng)需要生成圖表
"line" as dash
from tempTable where x is not null group by x order by x asc 
as finalTable;

為了展示出圖殿如,橫坐標(biāo)名字一定要為x,然后通過dash參數(shù)告訴系統(tǒng)使用什么圖做展示贡珊。這里是折線圖,寫line就好涉馁。最后的SQL大概是如下的:

image.png

我們點(diǎn)擊運(yùn)行门岔,運(yùn)行的結(jié)果如下:

image.png

點(diǎn)擊 Tools/Dashboard 查看圖標(biāo):

image.png

可以看到 兩者差異還是非常大的,而且皮膚科還有數(shù)據(jù)缺失烤送。

image.png

任務(wù)二

因?yàn)槲覀円呀?jīng)做完了文件上傳和加載excel文件等寒随,所以任務(wù)二里,我們只要做數(shù)據(jù)預(yù)處理和生成圖標(biāo)即可帮坚。

Step1: 數(shù)據(jù)預(yù)處理

那么現(xiàn)在妻往,第一個任務(wù)已經(jīng)做好了,我們接著做第二任務(wù)试和,第二個任務(wù)核心就是要關(guān)聯(lián)兩張表,
這可以用Join語法:

select tp.*,me.email from triagePatient as tp  left join masterEmail as me on tp.master==me.master
as triagePatientWithEmail;

Step2: 生成圖表并做分析

這樣我們得到了一張新表讯泣,該表有email字段了。接著我們根據(jù)用戶進(jìn)行聚合:

select first(email) as x, 
avg(patientNum) as patientEveryDay
"bar" as dash
from triagePatientWithEmail 
group by master 
order by patientEveryDay desc
as output;

我們用email做橫坐標(biāo)阅悍,然后平均病人數(shù)作為縱坐標(biāo)的值好渠,同時使用柱狀圖:

image.png

可以看到 jack@hotmail的科室日均接診量遙遙領(lǐng)先昨稼。

任務(wù)三:保存和下載包含email的新表為excel文件

最后我們希望把triagePatientWithEmail表保存下來,然后下載到自己的電腦上拳锚。拖拽
Save data到編輯區(qū)假栓,打開對話框,選擇excel格式霍掺,然后將triagePatientWithEmail 表保存到/tmp/triagePatientWithEmail.xlsx 文件:

image.png

點(diǎn)擊ok后自動生成語句匾荆,然后點(diǎn)擊運(yùn)行,結(jié)果顯示保存完畢。我們可以用前面查看excel的方法加載他:

image.png

很完美抗楔。然后我們現(xiàn)在要下載他棋凳,拖拽


image.png

到編輯區(qū),然后填寫路徑:

image.png

點(diǎn)擊Ok,會打開新標(biāo)簽頁進(jìn)行下載连躏。

完整腳本

最后完整腳本如下:

--------------------------------------------------------------------------------
-- 數(shù)據(jù)描述:
--
-- 我們有兩個excel文件剩岳,第一個文件是每個科室每天接收的病人,并且有這個科室的負(fù)責(zé)人入热。
-- 第二個文件是科室負(fù)責(zé)人以及對應(yīng)的email信息拍棕。
--
-- 需求描述:
-- 1. 我們希望看到科室每天接收到的人的一個時間分布圖。
-- 2. 日均接收用戶最高的科室負(fù)責(zé)人的email
--------------------------------------------------------------------------------

-- 需求一

-- 下載文件
-- run command as DownloadExt.`` where 
-- from="excel-example" and
-- to="/tmp";
 
load excel.`/tmp/excel-example/triage-patient.xlsx` where useHeader="true"  as triagePatient;
load excel.`/tmp/excel-example/master-email.xlsx` where useHeader="true" as masterEmail;

-- select date_format(cast (UNIX_TIMESTAMP(date, 'dd/MM/yy') as TIMESTAMP),'dd/MM/yy') as x,date from triagePatient as output;

select date  as x, 0 as y1, patientNum as y2 from triagePatient where triage="皮膚科"
union all
select date  as x, patientNum as y1, 0 as y2 from triagePatient where triage="眼科" 
as tempTable;

select x,sum(y1) as `眼科`,sum(y2) as `皮膚科`, 
-- 告訴系統(tǒng)需要生成圖表
"line" as dash
from tempTable where x is not null group by x order by x asc 
as finalTable;

select tp.*,me.email from triagePatient as tp  left join masterEmail as me on tp.master==me.master
as triagePatientWithEmail;

select first(email) as x, 
avg(patientNum) as patientEveryDay,master,first(email) as email, 
"bar" as dash
from triagePatientWithEmail 
group by master 
order by patientEveryDay desc
as output;

save overwrite triagePatientWithEmail as excel.`/tmp/triagePatientWithEmail.xlsx`;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末勺良,一起剝皮案震驚了整個濱河市绰播,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌尚困,老刑警劉巖蠢箩,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異事甜,居然都是意外死亡谬泌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門逻谦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掌实,“玉大人,你說我怎么就攤上這事邦马〖牵” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵滋将,是天一觀的道長邻悬。 經(jīng)常有香客問我,道長随闽,這世上最難降的妖魔是什么父丰? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮橱脸,結(jié)果婚禮上础米,老公的妹妹穿的比我還像新娘。我一直安慰自己添诉,他們只是感情好屁桑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著栏赴,像睡著了一般蘑斧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上须眷,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天竖瘾,我揣著相機(jī)與錄音,去河邊找鬼花颗。 笑死捕传,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的扩劝。 我是一名探鬼主播庸论,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼棒呛!你這毒婦竟也來了聂示?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤簇秒,失蹤者是張志新(化名)和其女友劉穎鱼喉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趋观,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扛禽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拆内。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旋圆。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖麸恍,靈堂內(nèi)的尸體忽然破棺而出灵巧,到底是詐尸還是另有隱情,我是刑警寧澤抹沪,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布刻肄,位于F島的核電站,受9級特大地震影響融欧,放射性物質(zhì)發(fā)生泄漏敏弃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一噪馏、第九天 我趴在偏房一處隱蔽的房頂上張望麦到。 院中可真熱鬧绿饵,春花似錦、人聲如沸瓶颠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粹淋。三九已至吸祟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間桃移,已是汗流浹背屋匕。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留借杰,地道東北人过吻。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像蔗衡,于是被迫代替她去往敵國和親疮装。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350