更新时间:2026-10-16 GMT+08:00
分享

注册Data-Juicer算子

将一个Data-Juicer算子(Filter或Mapper子类实例)注册为标量UDF。内部通过dj_operator_to_aura_udf将算子适配为可调用UDF,再委托给create_udf。

由于cloudpickle对Data-Juicer算子类采用按引用序列化,SDK会自动将py-data-juicer加入runtime_env.pypi,确保Aura运行时已安装该包;用户自定义的runtime_env优先级高于自动注入项。

前提条件

已安装data_juicer包(本地用于构造算子实例)。

函数签名

client.create_datajuicer_operator(
    operator, /, *,
    name,
    input_columns,
    output_columns=None,
    database=None,
    signature=None,
    imports=None,
    runtime_env=None,
    description=None,
    pretty_name=None,
    is_strict=True,
    volatility="VOLATILE",
    is_batch=False,
    batch_size=None,
    cpu_arch=None,
    cpus=None,
    memory=None,
    device_type=None,
    devices=None,
) -> Function

参数说明

参数

是否必选

类型

默认值

说明

operator

是

Any(位置参数)

-

已初始化的 Data-Juicer 算子实例(Filter或Mapper子类)。

name

是

str

-

注册到LakeFormation的函数名。

input_columns

是

list[str]

-

算子期望的输入列名,顺序与引擎传入的位置参数对齐。

output_columns

否

list[str] | None

None

算子产出的列名;Mapper操作必需,Filter操作忽略。

database

否

str | None

default_database

目标数据库名。

signature

否

Signature | None

None

显式函数签名。关于signature的更多信息,请参见signature说明。

imports

否

str | Iterable[str] | None

None

打入UDF包的额外文件/目录或URL。

runtime_env

否

str | Mapping | None

None

运行时环境配置;将与 {"pypi": ["py-data-juicer"]} 合并。

关于runtime_env的更多信息,请参见runtime_env说明。

description

否

str | None

None

函数描述。

pretty_name

否

str | None

None

展示名。

is_strict

否

bool

True

是否严格。

volatility

否

str

“VOLATILE”

函数易变性。

is_batch

否

bool

False

是否批量处理。

batch_size

否

int | None

None

批量大小。

cpu_arch

否

str | None

None

CPU 架构(arm/x86)。

cpus

否

float | None

None

CPU 核数(最小0.33)。

memory

否

int | None

None

内存(MB,最小1)。

device_type

否

str | None

None

设备类型。

devices

否

float | None

None

设备数量。

返回值

返回Function对象(实际由create_udf返回)。

异常说明

异常

触发条件

ValueError

operator 为 Mapper 但未提供 output_columns。

ImportError

未安装 data_juicer 包。

示例代码

from data_juicer.ops.mapper import LowercaseMapper

op = LowercaseMapper(text_column="content")

func = client.create_datajuicer_operator(
    operator=op,
    name="dj_lowercase",
    input_columns=["content"],
    output_columns=["content"],          # Mapper 必填
    description="Data-Juicer 小写映射算子",
)
  • 支持Mapper和Filter算子类型。
  • Filter算子无需output_columns,传入也会被忽略。
  • runtime_env合并规则:用户配置优先,py-data-juicer作为补充依赖自动加入;重复包名按去重策略保留。

相关文档