- 功能介绍
- 参数说明
- 脚本示例
- 脚本代码
- 脚本运行结果
功能介绍
提供批式 UDTF 功能。
在Python环境中,可以提供含eval函数的对象或者lambda函数作为UDTF。
参数说明
以下为Python脚本中的参数:
| 名称 | 中文名称 | 描述 | 类型 | 是否必须? | 默认值 |
|---|---|---|---|---|---|
| func | UDTF 函数 | UDTF 函数 | 含eval函数的对象或者lambda函数 | ✓ | |
| outputCols | 输出结果列列名数组 | 输出结果列列名数组,必选 | String[] | ✓ | |
| resultTypes | 输出结果列类型 | 输出结果列类型 | String[] | ✓ | |
| selectedCols | 选择的列名 | 计算列对应的列名列表 | String[] | ✓ | |
| reservedCols | 算法保留列名 | 算法保留列 | String[] | null | |
| joinType | join 类型 | join 类型 | String |
脚本示例
脚本代码
class SplitOp(object):def eval(self, *args):for index, x in enumerate(args):yield index, xpasssource = CsvSourceBatchOp()\.setSchemaStr("sepal_length double, sepal_width double, petal_length double, petal_width double, category string")\.setFilePath("http://alink-dataset.cn-hangzhou.oss.aliyun-inc.com/csv/iris.csv")udtfOp = UDTFBatchOp() \.setFunc(SplitOp()) \.setResultTypes(["LONG", "DOUBLE"]) \.setSelectedCols(['sepal_length', 'sepal_width']) \.setOutputCols(['index', 'x'])udtf_res = udtfOp.linkFrom(source)udtf_res.firstN(10).print()
脚本运行结果
index x0 0 5.11 1 3.52 0 5.03 1 2.04 0 5.05 1 3.26 0 6.67 0 5.18 1 3.79 0 6.4
