Skip to content

Latest commit

 

History

History
78 lines (62 loc) · 3.95 KB

MEMO.md

File metadata and controls

78 lines (62 loc) · 3.95 KB

[TOC]

Import CSV to SQLite

sample-output$ sqlite3 hadoop.db
SQLite version 3.24.0 2018-06-04 14:10:15
Enter ".help" for usage hints.
sqlite> create table "pageHistories" (
   ...>  pageId int,
   ...> version int,
   ...> published timestamp,
   ...> user_id varchar,
   ...> user_name varchar
   ...> );
sqlite> .mode csv
sqlite> .separator ';'
sqlite> .import pageHistories.csv pageHistories
sqlite> select user_id, pageId, count(published) from pageHistories group by user_id, pageId;

Generate Graph via Python

Reading List

Network Graph Implementation

心得/設計思路

記錄一下心得與設計思路。

由於過去寫慣了 Shell Script,所以很多時候構思小型專案的時候,都會有點遵循 Linux 指令背後的思維,一個階段/一個 State/一個目的就寫成一個指令。優點是容易除錯,缺點是等到整個功能做得差不多了,又得再重構一次。另一個缺點是別人不容易看懂程式碼的結構。像是需要把儲存成不同 CSV 的部分重新整理成合適的 Data Model,把重複的程式碼改用物件導向的方式設計。

反思:從構思,驗證,重構,再重新設計,這樣的迭代也許蠻花時間的,但也算是一種訓練啦~回過頭去想底層的 Data Model 怎樣才精簡,怎麼減少運算步驟,實際體驗一下不同的函式庫 BeautifulSoup, Selenium, pandas, networkx, webweb, etc。也學著去從函示庫的原始碼學著寫得更模組化。

先前在分析臉書資料時,會用 Gephi 來做 Social Network Analysis,感覺 networkx, webweb, plotly 的 dash 這幾個函式庫,提供了更多彈性。

也在看這些函示庫的範例過程中,學到 requirements.txtProcfile 的用法。

後續也許會再花點時間來看一下 Pytest 跟 Github CI 的設定。

Python Visualization Framework