• 功能介绍
  • 参数说明
  • 脚本示例
    • 脚本代码
    • 脚本运行结果

    功能介绍

    提供批式 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("http://alink-dataset.cn-hangzhou.oss.aliyun-inc.com/csv/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