python 调用bat失败_tableau调用python脚本(纯干货)

66b804893cfa509b6dac8ab22d5db3f4.gif

tableau是什么,我就不解释了,做数据分析工作的人基本都知道,配合python灵活强大的机器学习算法,是分析师进阶的神器。

(近来笔者阅读文献发现很多人写技术文章相当啰嗦,明明一两句话就可以说清楚的事情偏要像八股文一样写几千字的文章,浪费读者大量时间,笔者先在这里鄙视一番)

但由于步骤较多,先写目录

话不多说,敲下黑板,进入重点

一、tabpy下载安装

二、tabpy_server部署

三、tableau 连接配置

四、用tableau向tabpy_server发送python脚本

五、在tabpy_server上部署python脚本

六、tableau调用tabpy_server上已部署的脚本

七、常见错误

一. tabpy下载安装

1.https://github.com/tableau/TabPy

2a1ff03cc9b1a4f33ab49bf6ea53ffd7.png
下载zip文件,windos运行压缩包中的setup.bat, linux运行setup.sh

2.anaconda环境下安装

b135c20882956e830fbadab092f7bbc8.png
environments中搜索tabpy,安装tabpy_client和tabpy_server两个模块

3.python环境下安装

pip install tabpy_server

pip install tabpy_client

二. tabpy_server部署

  1. 找到tabpy_server的安装目录,笔者用anaconda安装,目录在

E:Program Filesanaconda3Libsite-packagestabpy_server

具体参考自己anaconda的安装目录

如果是windos系统,运行startup.bat

如果是Linux或MAC系统,运行startup.sh

c85a478c27a357aaa5c1116810657901.png
也可以在当前目录运行CMD然后输入 python tabpy.py
笔者是windos系统,并把tabpy部署在本机,可以把startup.bat创建桌面快捷方式,经常会用到.想要用tableau运行python代码,首先得启动tabpy服务器

312e5750d756b4e63210b62b009cc8a9.png
显示这个信息代表服务器启动成功,开始监听9004端口

三. tableau 连接配置

打开tableau,帮助>设置和性能>管理外部服务连接

5847b3b662e51b753d60b063d278b647.png
服务器设置为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一一对应。如创建下面的计算字段:

测试数据:

8d1435af6ab7c92a02e53bb0089b3793.png

计算字段:

c8204ee8e4eb4d797f388c88d182cd9b.png
tableau传入的参数与python表达式中的参数一一对应,用不同颜色的方框标识

运算结果:

2e63c7ca8830e8e8b4257c8305bcb5df.png

如果想聚合显示,可以把 分析>聚合度量 的"√"选上

138c1d00dcade57690326e6fc6728c77.png
结果就变成32这个单独的值

五、在tabpy_server上部署python脚本

上面的方法可以运行一些简单的python函数,如果想要重复使用,可以把函数部署在tabpy服务器上,随时都可以调用

启用jupyter-notebook或者pycharm,写一个函数,比如:

d3ff5340654e851be4ed511874c63b4a.png

运行看一下:

7b0e12cb0ece6854215e09bbb9985fe7.png
传入两个列表试试,结果没问题

六、tableau调用tabpy_server上已部署的脚本

e5ada0cc2bd41a7faa70dbd2768154e7.png

查看返回结果:

3000314bcde8268ef9738e661fe10939.png
结果为5,7,9,11,跟上面一样

整个过程已经讲完,本来想再加入一个tableau调用python机器学习的案列,太困了,以后再加吧!整个过程跟五、六步一样,感兴趣的同学可以先自己尝试一下!

六、常见错误:

外部服务连接疑难解答

如果尝试的过程中遇到什么问题也可以在下方留言!

参考:

  1. https://github.com/tableau/TabPy
  2. https://github.com/tableau/TabPy/blob/master/TableauConfiguration.md
  3. Tableau and Python Integration
  4. 使用TabPy构建高级分析应用程序
  5. Tableau 高级 | TabPy使用
  6. Tableau Integration with Python - Step by Step
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值