#connect to tableau server
import tabpy_client
client = tabpy_client.Client('http://localhost:9004/')
#def function #deploy 函数到tableau
def clustering(x, y):
import numpy as np
from sklearn.cluster import DBSCAN
from sklearn.preprocessing import StandardScaler
X = np.column_stack([x, y])
X = StandardScaler().fit_transform(X)
db = DBSCAN(eps=1, min_samples=3).fit(X)
return db.labels_.tolist()
client.deploy('clustering',clustering,'Returns cluster Ids for each data point specified by the pairs in x and y',override = True)
print('deployed done!')
#def annother function kmeans
def kmeans_clustering(x,y):
import numpy as np
from sklearn.preprocessing import StandardScaler
X = np.column_stack([x, y])
X = StandardScaler().fit_transform(X)
from sklearn.cluster import KMeans #导入K均值聚类算法
k = 4 #需要进行的聚类类别数
kmodel = KMeans(n_clusters = k, n_jobs = 4) #n_jobs是并行数,一般等于CPU数较好
kmodel.fit(X) #训练模型
return kmodel.labels_.tolist() #查看各样本对应的类别
client.deploy('kmeans_clustering',
kmeans_clustering,
'Returns cluster Ids for each data point specified by the pairs in x and y',override = True)
print('deployed kmeans done!')
#tableau 计算字段
SCRIPT_REAL("return tabpy.query('clustering',_arg1,_arg2)['response']",sum([销售额]), sum([利润]))
#如果要在server 看,就是将带有python script的工作簿发到server(基于tablature server2018-2)
tsm configuration set -k vizqlserver.allow_insecure_scripts -v True
tsm configuration set -k vizqlserver.script.disabled -v False
tsm configuration set -k vizqlserver.extsvc.host -v 172.20.10.209
tsm configuration set -k vizqlserver.extsvc.port -v 9004
#如果desktop 没有密码,可以忽略下面2句
tsm configuration set -k vizqlserver.extsvc.username -v wxl
tsm configuration set -k vizqlserver.extsvc.password -v wxl3322335
#重点(敲黑板!!! 必考题!!!)
最后一定记得重启tableau server,
2018-2以后tsm configuration后还要重启tablea server才生效