摘要: PyODPS 中使用 Python UDF 包含两方面,一个是直接使用,也就是在 MaxCompute SQL 中使用;一个是间接的方式,也就是 PyODPS DataFrame,这种方式你不需要直接写 Python UDF,而是写普通的 Python 函数或者类。
PyODPS 中使用 Python UDF 包含两方面,一个是直接使用,也就是在 MaxCompute SQL 中使用;一个是间接的方式,也就是 PyODPS DataFrame,这种方式你不需要直接写 Python UDF,而是写普通的 Python 函数或者类。下面我们分开说明。
作为准备工作,我们需要 ODPS 入口,可以通过直接初始化,或者使用 room 机制 加载。
from odps import ODPS
o = ODPS('your-access-id', 'your-access-key', 'your-project')
MaxCompute SQL 中使用 Python UDF
首先,我们需要写一个 Python 文件,假设我们就是把某一列按 csv 格式放的一列转成 json 格式。
import json
from odps.udf import annotate
@annotate('string->string')
class Transform(object):
def evaluate(self, x):
columns = list('abc')
d = dict(zip(columns, x.sp