Java 类名:com.alibaba.alink.operator.stream.dataproc.TypeConvertStreamOp
Python 类名:TypeConvertStreamOp

功能介绍

类型转换是用来列类型进行转换的组件
组件可一次性转化多个列到指定的数据类型,但是这些列的数据类型只能为同一种,并且为JDBC Type。
支持的目标类型为 STRING, VARCHAR, FLOAT, DOUBLE, INT, BIGINT, LONG, BOOLEAN。

参数说明

| 名称 | 中文名称 | 描述 | 类型 | 是否必须? | 取值范围 | 默认值 | | —- | —- | —- | —- | —- | —- | —- |

| targetType | 目标类型 | 转换为的类型,类型应该为JDBC Type。 | String | ✓ | “STRING”, “VARCHAR”, “FLOAT”, “DOUBLE”, “INT”, “BIGINT”, “LONG”, “BOOLEAN” | |

| selectedCols | 选中的列名数组 | 计算列对应的列名列表 | String[] | | | null |

代码示例

Python 代码

  1. from pyalink.alink import *
  2. import pandas as pd
  3. useLocalEnv(1)
  4. df_data = pd.DataFrame([
  5. ['Ohio', 2000, 1.5],
  6. ['Ohio', 2001, 1.7],
  7. ['Ohio', 2002, 3.6],
  8. ['Nevada', 2001, 2.4],
  9. ['Nevada', 2002, 2.9],
  10. ['Nevada', 2003,3.2]
  11. ])
  12. stream_data = StreamOperator.fromDataframe(df_data, schemaStr='f1 string, f2 bigint, f3 double')
  13. op = TypeConvertStreamOp()\
  14. .setSelectedCols(['f2'])\
  15. .setTargetType('double')
  16. stream_data.link(op).print()
  17. StreamOperator.execute()

运行结果

  1. ['f1', 'f2', 'f3']
  2. ['Ohio', 2000.0, 1.5]
  3. ['Ohio', 2001.0, 1.7]
  4. ['Ohio', 2002.0, 3.6]
  5. ['Nevada', 2001.0, 2.4]
  6. ['Nevada', 2002.0, 2.9]
  7. ['Nevada', 2003.0, 3.2]