tableau是什么,我就不解释了,做数据分析工作的人基本都知道,配合python灵活强大的机器学习算法,是分析师进阶的神器。
(近来笔者阅读文献发现很多人写技术文章相当啰嗦,明明一两句话就可以说清楚的事情偏要像八股文一样写几千字的文章,浪费读者大量时间,笔者先在这里鄙视一番)
但由于步骤较多,先写目录
话不多说,敲下黑板,进入重点
一、tabpy下载安装
二、tabpy_server部署
三、tableau 连接配置
四、用tableau向tabpy_server发送python脚本
五、在tabpy_server上部署python脚本
六、tableau调用tabpy_server上已部署的脚本
七、常见错误
一. tabpy下载安装
1.https://github.com/tableau/TabPy
下载zip文件,windos运行压缩包中的setup.bat, linux运行setup.sh
2.anaconda环境下安装
environments中搜索tabpy,安装tabpy_client和tabpy_server两个模块
3.python环境下安装
pip install tabpy_server
pip install tabpy_client
二. tabpy_server部署
- 找到tabpy_server的安装目录,笔者用anaconda安装,目录在
E:Program Filesanaconda3Libsite-packagestabpy_server
具体参考自己anaconda的安装目录
如果是windos系统,运行startup.bat
如果是Linux或MAC系统,运行startup.sh
也可以在当前目录运行CMD然后输入 python tabpy.py
笔者是windos系统,并把tabpy部署在本机,可以把startup.bat创建桌面快捷方式,经常会用到.想要用tableau运行python代码,首先得启动tabpy服务器
显示这个信息代表服务器启动成功,开始监听9004端口
三. tableau 连接配置
打开tableau,帮助>设置和性能>管理外部服务连接
服务器设置为localhost或127.0.0.1端口默认9004
点击测试连接,弹出成功,连接后点 确定 客户端连接服务器便设置完成
四、用tableau向tabpy_server发送python脚本
1.新建一个计算字段(分析>创建计算字段)
tableau向tabpy服务器发送代码的函数有四个,SCRIPTINT、SCRIPTREAL、 SCRIPTSTR 、SCRIPT_BOOL,分别代表返回整型、返回实数、返回字符串、返回布尔类型。
这四个函数运用格式都一样,比如:
SCRIPT_STR("python代码",参数1,参数2...)
在python代码段中,必须有返回值,返回什么类型根据调用的函数来确定,在Python代码中,所有要传递的参数都用 _arg# 来表示,比如有两个参数,就用_arg1, _arg2,与后面的参数1,参数2一一对应。如创建下面的计算字段:
测试数据:
计算字段:
tableau传入的参数与python表达式中的参数一一对应,用不同颜色的方框标识
运算结果:
如果想聚合显示,可以把 分析>聚合度量 的"√"选上
结果就变成32这个单独的值
五、在tabpy_server上部署python脚本
上面的方法可以运行一些简单的python函数,如果想要重复使用,可以把函数部署在tabpy服务器上,随时都可以调用
启用jupyter-notebook或者pycharm,写一个函数,比如:
运行看一下:
传入两个列表试试,结果没问题
六、tableau调用tabpy_server上已部署的脚本
查看返回结果:
结果为5,7,9,11,跟上面一样
整个过程已经讲完,本来想再加入一个tableau调用python机器学习的案列,太困了,以后再加吧!整个过程跟五、六步一样,感兴趣的同学可以先自己尝试一下!
六、常见错误:
外部服务连接疑难解答
如果尝试的过程中遇到什么问题也可以在下方留言!
参考:
- https://github.com/tableau/TabPy
- https://github.com/tableau/TabPy/blob/master/TableauConfiguration.md
- Tableau and Python Integration
- 使用TabPy构建高级分析应用程序
- Tableau 高级 | TabPy使用
- Tableau Integration with Python - Step by Step