开发者问题收集

在 tableau prep 中获取 prep_int() 未定义错误

2020-11-19
667

我正在使用 Tableau Prep 和 Python 脚本,但当我执行 Python 脚本时,在输出流中出现错误“ prep_int() 函数未定义 ”。我在 Python 脚本中为 get_output_schema 函数使用了 prep_int()。

Python 代码:

import pandas as pd
import requests
import json

df = pd.read_csv("E:/dummy.csv")
port = "8080"

target_columns = ["id"]
# target_columns = df['id']
source_columns = list(set(df.columns) - {"target"})
# print(target_columns)

target_json = json.loads(df[target_columns].to_json(orient="records"))
source_json = json.loads(df[source_columns].to_json(orient="records"))

# print(source_json)

payload = {"source": {"data": source_json}, "target": {"data": target_json}}
# print(payload)
# Run a single or mini-batch prediction
headers = {"content-type": "application/json", "accept": "application/json"}

r = requests.post(
    "http://14.141.154.146:9871/invocations", data=json.dumps(payload), headers=headers
)

# print(r.text)


def filldata():
    df = pd.DataFrame()
    ID(int)
    # fill df up with data
    # for example
    # name (string)
    # time (datetime)
    # number (int)

    return df


def get_output_schema(self):
    return pd.DataFrame({"ID": prep_int()})

  • 带有错误消息的 Tableau Prep 屏幕:

在此处输入图片说明

1个回答

您快完成了!

查看文档 https://help.tableau.com/current/prep/en-us/prep_scripts_TabPy.htm

您必须获取返回 pandas DataFrame 的内部结构和 def get_output_schema() 以进行匹配。

您没有在任何地方返回 DataFrame,并且 get_output_schema 也不匹配该 DataFrame,因为它不存在。

因此您需要一个函数

def filldata():
    df=pd.DataFrame()
    # fill df up with data
    # for example
    # name (string)
    # time (datetime)
    # number (int)

    return df

并且您需要一个相应的函数

def get_output_schema():
    return pd.DataFrame({
    'name' : prep_string(),
    'time' : prep_datetime(),
    'number' : prep_int()
})

然后移至 tableau 以指向脚本和要调用的函数以获取数据。

Paul Brennan
2020-11-19