Superset的二次开发_集成Echarts图表

本文介绍了如何在Docker安装的Superset中进行Echarts图表的二次开发,包括安装必要的软件,如vim和unzip,以及在本地下载源码,将Echarts集成到Superset的多个文件中,涉及到viz.py、index.js、visTypes.jsx等多个文件的修改,并提供了重启Docker的步骤。同时,文章提到了两个参考博客,表达了对作者的感谢。
摘要由CSDN通过智能技术生成
安装 vim编辑 unzip解压 方便后续对文件的操作

apt-get update
apt-get install vim
apt-get install zip

接上一篇博客 docker安装完superset之后:

前端: 安装node.js,创建前端编译环境
① 在您的计算机配置中添加存储库:
curl -sL https://deb.nodesource.com/setup_10.x | bash -
② 安装node.js
apt-get install -y nodejs
③ 测试是否安装成功
node -v
npm -v

正式的二次开发添加echarts:
①注意先别着急,现在本地下载一份源码,由于我装的是0.28的版本,因此下载一份源码 ,下载完源码由于链接不生效,需要将incubator-superset-0.28\superset\assets 的assets文件夹整个复制一份到incubator-superset-0.28\superset\static\下,替换之前打不开的assets文件夹

https://github.com/apache/incubator-superset
在这里插入图片描述
② docker下载之后发现再src的包不完整,因此需要将刚本地下载的源码的src打包上传到docker中去。

rz  ./src.zip

注:当rz出现乱码时,使用rz -be (机器编码不一致造成的,windows文件默认是gbk编码 ,linux文件默认是 utf-8编码)

docker cp ./src.zip 3ebdf90132cb:/usr/local/lib/python3.6/site-packages/superset/static/assets/

③集成echarts图表需要7个地方需要修改,我是采用的再外面统一修改之后上传进去
注意:再此处建议用 root权限登录docker

docker exec -it -u root 3ebdf90132cb  bash
1.docker cp ./viz.py 3ebdf90132cb:/usr/local/lib/python3.6/site-packages/superset/
2.docker cp ./index.js 3ebdf90132cb:/usr/local/lib/python3.6/site-packages/superset/static/assets/src/visualizations/
3.docker cp ./echarts_bar_polar.js 3ebdf90132cb:/usr/local/lib/python3.6/site-packages/superset/static/assets/src/visualizations/
4.docker cp ./visTypes.jsx 3ebdf90132cb:/usr/local/lib/python3.6/site-packages/superset/static/assets/src/explore/
5.docker cp ./echarts_bar_polar.png 3ebdf90132cb:/usr/local/lib/python3.6/site-packages/superset/static/assets/images/viz_thumbnails/
6.vi  /usr/local/lib/python3.6/site-packages/superset/static/assets/src/modules/colors.js
7.superset/static/assets/package.json   新增  "echarts" : "^4.2.0-rc.2",

下面一步步展开来说:

第一步:superset/viz.py文件, 在BaseViz类的下方和TableViz的上方加入如下代码

class EchartsBarPolar(BaseViz):
    viz_type = 'echarts_bar_polar' #对应前端的名字
    is_timeseries = False
    def should_be_timeseries(self):
        fd = self.form_data
        conditions_met = (
            (fd.get('granularity') and fd.get('granularity') != 'all') or
            (fd.get('granularity_sqla') and fd.get('time_grain_sqla'))
 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值