Zeppelin-使用TuShare快速入門

Zeppelin是相似於Jupyter Notebook的Web數據分析工具,內置Spark引擎。這裏結合TuShare、Requests、BS4的介紹其用法。這裏以Docker中運行爲例。python

Zeppelin

這裏介紹Zeppelin源碼編譯、容器構建、安裝TuShare和圖表呈現的步驟與方法。git

一、編譯Zeppelin源碼

得到源碼:github

git clone https://github.com/openthings/docker-zeppelin

編譯源碼:docker

docker build -t zeppelinx .

輸出的Docker容器爲zeppelinx,能夠輸入 docker images查看。shell

二、運行Zeppelin服務

下一步啓動容器:瀏覽器

docker run --name zeppelinx -p 9090:8080 -it zeppelinx

由於不少服務都使用了8080端口,這裏我改爲9090以免衝突。 啓動成功後,打開瀏覽器進入 http://localhost:9090 便可訪問。app

2.1 設置Python3

由於上述的Docker容器安裝的python3,咱們將python和pyspark的python解釋器都設爲python3。 在右上角選擇interpreter,找到python項,選擇「editor」,而後將zeppelin.python修改成python3。 以下所示:函數

zeppelin-python

2.2 安裝支持庫

以幾個經常使用的庫安裝爲例。 首先新建一個note,選擇默認的Interpreter爲shell。 在Paragraph中輸入如下內容,而後按shift+enter執行:工具

pip install lxml
pip install pandas
pip install TuShare
pip install Requests
pip install beautifulsoup4

三、使用TuShare

3.1 建立數據獲取函數

首先經過TuShare獲取數據,返回格式爲pandas.DataFrame。 在Zappelin中表格能夠直接經過%table標籤的字符串輸出,顯示爲表格或統計圖。示例格式爲:ui

%table
name\tvalue\r
cell01\t10\r
cell02\t20

爲了直接顯示數據和趨勢,能夠將pandas轉爲table格式,轉換函數以下:

%python
import tushare as ts
import pandas as pd

def get_hist(stock,ktypex,startx):
    
    df = ts.get_hist_data(code=stock,ktype=ktypex,start=startx)
    df = df.sort_index(ascending=True)
    
    a ="""%table\r date\t high\t low\r"""
    for idx in df.index:
        a = a + str(idx) + "\t" + str(df.ix[idx]['high']) + "\t" + str(df.ix[idx]['low']) + "\r"
    return (df,a)

返回的數據爲元組,第一個參數爲Pandas.DataFrame,第二個參數爲轉換後的%table字符串。

**注意:在最新的Zeppelin 0.8-snapshot版本中,%table的分行符改成了"\n","\r"無論用了。使用下面的函數: **

%python
import tushare as ts
import pandas as pd

def get_hist(stock,ktypex,startx):
    
    df = ts.get_hist_data(code=stock,ktype=ktypex,start=startx)
    df = df.sort_index(ascending=True)
    
    a ="""%table\n date\t high\t low\n"""
    for idx in df.index:
        a = a + str(idx) + "\t" + str(df.ix[idx]['high']) + "\t" + str(df.ix[idx]['low']) + "\n"
    return (df,a)

3.2 建立圖表

調用get_hist獲得數據,並可視化。

%python
df,adata = get_hist(stock='300036',ktypex='5',startx='2017-02-20')
print(adata)

結果以下:

Zeppelin

相關文章
相關標籤/搜索