wedata3-feature-engineering。未预装时执行 %pip install "wedata3-feature-engineering[mlflow3]==0.2.3"(要求 MLflow ≥ 3.0.0)。prepare_churn_data.ipynb,启动使用计算资源的 Kernel:点击右上角 未连接 ,搜索并选择用于机器学习的资源组进行连接,待状态变为已连接 。# 检查特征工程 SDK 是否已安装(机器学习镜像已预装,会打印版本)%pip list | grep wedata3-feature-engineering# 未安装时取消下一行注释执行(要求内核 Python ≥ 3.10、MLflow ≥ 3.0.0),装完重启内核# %pip install "wedata3-feature-engineering[mlflow3]==0.2.3"
create_table中修改相关信息:import pandas as pdfrom pyspark.sql.functions import current_timestampfrom wedata.feature_engineering.client import FeatureEngineeringClientfrom wedata.feature_store.constants.engine_types import EngineTypes# Studio(DLC)Notebook 内核已内置 spark 会话,可直接使用 spark 变量,无需手动创建 SparkSession# 初始化特征工程客户端(鉴权信息由 Notebook 内核从环境变量自动注入,无需手动配置)fe = FeatureEngineeringClient(spark)# 读取上传的 CSV,并补充时间戳列# 注意:请把下方路径替换为您在步骤 1.1 上传 CSV 的实际目录路径。# 可在左侧文件管理器中右键该 CSV 文件、选择「复制路径」获取完整路径,# 形如 /Workspace/Users/<你的账号>/customer_churn_class.csvpdf = pd.read_csv("/Workspace/Users/<你的账号>/customer_churn_class.csv")df = spark.createDataFrame(pdf).withColumn("event_timestamp", current_timestamp())# 创建特征表:指定主键与时间戳键,engine_type 固定用 Iceberg,df 用于推断 schema 并写入首批数据fe.create_table(name="customer_churn_features", # (可修改)特征表名catalog_name="your_catalog", # 目标 Catalog 名database_name="your_schema", # 目标 Schema 名primary_keys=["customer_id"], # 主键(支持复合主键)timestamp_key="event_timestamp", # 时间戳键(单数)engine_type=EngineTypes.ICEBERG_ENGINE,df=df, # 用 df 推断 schema 并写入首批数据description="客户流失特征表,用于 AutoML 训练。",)# 读回离线特征表,验证写入结果(表名为上面 create_table 的三段式全名,请替换为您自己的 catalog.schema)fe.read_table(name="your_catalog.your_schema.customer_churn_features").show(5)
tenure_months、monthly_charges、contract_type 等)、主键 customer_id、时间戳键 event_timestamp 和目标列 churn。
常见报错及解决方案请参考 最佳实践与异常排查。create_table 传入 df 时会用它推断表结构并写入首批数据;后续如需增量追加,可调用 fe.write_table(name=..., catalog_name=..., database_name=..., df=新数据, mode="append")。字段 | 取值 |
实验名称 | churn_classification_v1 |
实验描述 | 客户流失分类实验 - 首次跑通 |
资源组 | 下拉选择用于训练的资源组 |
customer_churn_features 特征表,选定后右侧自动展示数据配置区。churn 作为分类标签列,该列会在右侧数据配置区自动标记为 用于结果 。customer_id、event_timestamp 等不应作为特征的列(未选中的列不参与训练)。字段 | 推荐值 |
评估指标 | F1 Score |
搜索空间 | sklearn / xgboost / lightgbm |
最大运行时间 | 10 分钟(超时停止实验) |
最大运行次数 | 20(实验最多生成的运行任务数量) |
最大运行并发 | 1(实际并发还受限于资源组可用资源) |
churn_classification_v1 进入实验详情。catalog.schema.model_name 三段式全名):catalog.schema.model_name 规范的名称(目标 Catalog 需为 Model 类 Catalog ,可在 Catalog 中复制路径)。字段 | 取值 |
服务名称(Endpoint) | churn_predict_service(创建后不可修改,工作空间内全局唯一) |
服务描述 | 客户流失预测在线推理(用于列表页向团队说明用途) |
字段 | 取值 |
服务名称 | 该服务的名称,必填项 |
服务描述 | 描述服务,选填,不超过100字 |
部署模型 | 选择 Step 4 注册的模型 |
版本 | 选择 Step 4 注册的模型的版本(默认最新版本 Version 1) |
资源来源 | 平台按量计费(Serverless) |
资源规格 | 4C8G(CPU 规格起步;深度学习 / GPU 模型选 GPU 规格) |
请求限流 | 不限流 |
副本调节 | 手动调节 |
副本数量 | 1 |
调度策略 | 优先占满整机 |
配置项 | 推荐值 |
是否鉴权 | 推荐 开启 ;开启后调用方需在请求 Header 中携带平台生成的 Token。 |
服务日志投递 | 将请求 / 响应实时日志投递到日志服务,用于在线问题排查,需要有 CLS 权限。 |
churn_predict_service 进入 服务详情页, 点击服务调用 ,复制 调用地址 。<token>) :在服务详情页切换到 服务鉴权 标签页,确认 开启鉴权 开关已打开;在密钥列表中找到状态为 已启用 的密钥(默认有一条 default-key),点击 密钥 列的复制按钮复制其值。该值即为调用示例中 Authorization: Bearer <token> 的 <token>。如需多个密钥,可点击 新增密钥 生成。Authorization: Bearer <token>)。curl -X POST "https://<service-url>/predict" \\-H "Authorization: Bearer <token>" \\-H "Content-Type: application/json" \\-d '{"dataframe_records": [{"age": 27,"gender": "Male","tenure_months": 70,"monthly_charges": 112.99,"total_charges": 7410.38,"contract_type": "One Year","payment_method": "Credit Card","num_support_tickets": 5,"avg_monthly_usage": 271.91}]}'
wedata3-mlflow-tcdeploy-plugin 接入 MLflow 官方 Deployments API(target 固定为 tcdeploy)发起推理。先安装插件(机器学习 镜像通常已预装);平台内运行时临时密钥与工作空间上下文由 Notebook 内核自动注入,无需手动配置:%pip install "wedata3-mlflow-tcdeploy-plugin"
from mlflow.deployments import get_deploy_client# target 固定为 "tcdeploy"client = get_deploy_client("tcdeploy")# 控制台部署的服务,可通过 list_deployments() 获取服务组 ID(返回项的 name 即 service_group_id)service_group_id = client.list_deployments()[0]["name"]# predict 的 deployment_name 传服务组 ID(service_group_id,形如 msg-xxxxxx),不是服务名称result = client.predict(deployment_name=service_group_id,inputs={"dataframe_records": [{"age": 27,"gender": "Male","tenure_months": 70,"monthly_charges": 112.99,"total_charges": 7410.38,"contract_type": "One Year","payment_method": "Credit Card","num_support_tickets": 5,"avg_monthly_usage": 271.91}]},config={"auth_token": "Bearer <token>"}, # 服务开启鉴权时必填)print(result)
inputs 必须是 JSON 可序列化对象;pandas.DataFrame 需先 df.to_dict(orient="records") 转换后再传,不能直接传入。DataLakeCatalog.<用户名>_ml_db.customer_churn_features,并出现在 数据科学 > 特征管理 列表中。churn_classification_v1 状态为 成功 ,含最佳运行记录。churn_predict_service 状态为 运行中 。文档反馈