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

相关文章
相关标签/搜索