功能介绍

提供批式 UDTF 功能。

在Python环境中,可以提供含eval函数的对象或者lambda函数作为UDTF。

参数说明

以下为Python脚本中的参数:

名称 中文名称 描述 类型 是否必须? 默认值
func UDTF 函数 UDTF 函数 含eval函数的对象或者lambda函数
outputCols 输出结果列列名数组 输出结果列列名数组,必选 String[]
resultTypes 输出结果列类型 输出结果列类型 String[]
selectedCols 选择的列名 计算列对应的列名列表 String[]
reservedCols 算法保留列名 算法保留列 String[] null
joinType join 类型 join 类型 String

脚本示例

脚本代码

  1. class SplitOp(object):
  2. def eval(self, *args):
  3. for index, x in enumerate(args):
  4. yield index, x
  5. pass
  6. source = CsvSourceBatchOp()\
  7. .setSchemaStr("sepal_length double, sepal_width double, petal_length double, petal_width double, category string")\
  8. .setFilePath("https://alink-release.oss-cn-beijing.aliyuncs.com/data-files/iris.csv")
  9. udtfOp = UDTFBatchOp() \
  10. .setFunc(SplitOp()) \
  11. .setResultTypes(["LONG", "DOUBLE"]) \
  12. .setSelectedCols(['sepal_length', 'sepal_width']) \
  13. .setOutputCols(['index', 'x'])
  14. udtf_res = udtfOp.linkFrom(source)
  15. udtf_res.firstN(10).print()

脚本运行结果

  1. index x
  2. 0 0 5.1
  3. 1 1 3.5
  4. 2 0 5.0
  5. 3 1 2.0
  6. 4 0 5.0
  7. 5 1 3.2
  8. 6 0 6.6
  9. 7 0 5.1
  10. 8 1 3.7
  11. 9 0 6.4