机器学习PAI怎么用Alink的相关方法解析取到metrics里的值?
LSTNetPredictBatchOp类型的变量存的是下面的数据
{"data":{"ts":["2021-12-04 00:00:00.0"],"metrics":["0.26510030031204224 0.7800503969192505"]},"schema":"ts TIMESTAMP,metrics VECTOR"}
可以使用这个组件 https://alinklab.cn/manual/jsonvaluebatchop.html
--此回答整理自钉群“Alink开源--用户群”
要解析LSTNetPredictBatchOp
类型的变量中的metrics值,可以使用Alink的TableSinkStreamOp
和CollectTableSinkFunction
方法。
首先,需要将LSTNetPredictBatchOp
类型的变量转换为DataStream
类型,然后使用TableSinkStreamOp
将其转换为Table
类型。接下来,可以使用CollectTableSinkFunction
将Table
类型的数据收集到一个列表中,最后从列表中提取metrics值。
以下是示例代码:
from pyflink.datastream import StreamExecutionEnvironment
from pyflink.table import StreamTableEnvironment, DataTypes
from pyflink.table.descriptors import Schema, OldCsv, FileSystem
from pyflink.table.udf import udf
from alink.ml.operator import LSTNetPredictBatchOp
# 初始化Flink环境
env = StreamExecutionEnvironment.get_execution_environment()
t_env = StreamTableEnvironment.create(env)
# 定义schema
schema = Schema() \n .field("ts", DataTypes.TIMESTAMP()) \n .field("metrics", DataTypes.VECTOR())
# 注册源表
t_env.connect(FileSystem().path("/path/to/input")) \n .with_format(OldCsv()
.field("ts", DataTypes.TIMESTAMP())
.field("metrics", DataTypes.STRING())) \n .with_schema(schema) \n .create_temporary_table("input_table")
# 注册结果表
t_env.connect(FileSystem().path("/path/to/output")) \n .with_format(OldCsv()
.field("ts", DataTypes.TIMESTAMP())
.field("metrics", DataTypes.STRING())) \n .with_schema(schema) \n .create_temporary_table("output_table")
# 创建LSTNetPredictBatchOp实例
lstnet_predict_batch_op = LSTNetPredictBatchOp()
# 将输入表转换为DataStream
input_stream = t_env.from_path("input_table")
# 应用LSTNetPredictBatchOp
output_stream = lstnet_predict_batch_op.transform(input_stream)
# 将DataStream转换为Table
output_table = t_env.from_data_stream(output_stream, schema)
# 将Table写入结果表
t_env.insert_into("output_table", output_table)
# 执行任务
t_env.execute("LSTNetPredictBatchOp Example")
在这个示例中,我们首先创建了一个Flink环境,并定义了输入和输出表的schema。然后,我们创建了一个LSTNetPredictBatchOp
实例,并将其应用于输入表。最后,我们将输出表写入到指定的路径。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。