Byzer-python 介绍
Byzer通过 Byzer-python 扩展(内置)来支持Python 代码。 通过 Byzer-python,用户不仅仅可以进行 使用 Python 进行 ETL 处理,比如可以将一个 Byzer 表转化成一个分布式DataFrame on Dask 来操作,支持各种机器学习框架,比如 Tensorflow,Sklearn,PyTorch。 用户的Python脚本在 Byzer中是黑盒,用户可
·
Byzer通过 Byzer-python 扩展(内置)来支持Python 代码。
通过 Byzer-python,用户不仅仅可以进行
- 使用 Python 进行 ETL 处理,比如可以将一个 Byzer 表转化成一个分布式DataFrame on Dask 来操作,
- 支持各种机器学习框架,比如 Tensorflow,Sklearn,PyTorch。
用户的Python脚本在 Byzer中是黑盒,用户可以通过固定API获得表数据,通过固定API来将Python输出转化为表,方便后续SQL处理。
Hello World
-- Byzer-python Hello World
select "world" as hello as table1;
!python conf "schema=st(field(hello,string))";
!python conf "pythonExec=/home/winubuntu/miniconda3/envs/byzerllm-desktop/bin/python";
!python conf "dataMode=model";
!python conf "runIn=driver";
run command as Ray.`` where
inputTable="table1"
and outputTable="new_table"
and code='''
import ray
from pyjava.api.mlsql import RayContext,PythonContext
ray_context = RayContext.connect(globals(),None)
rows_from_table1 = [item for item in ray_context.collect()]
for row in rows_from_table1:
row["hello"] = "Byzer-Python"
context.build_result(rows_from_table1)
''';
select * from new_table as output;
简单描述下上面的代码。
- 第一步我们通过SQL获取到 table1.
- 第二步我们设置一些配置参数
- 第三步我们通过 Ray 扩展来书写 Python 代码对 table1 里的每条记录做处理。
- 第四步我们把 Python处理的结果得到的表 new_table 进行输出。
当然,上面的hello world 代码无法处理大规模数据。我们在后续教程中会进行更详细的介绍。
更多推荐
已为社区贡献106条内容
所有评论(0)