Alink教程(Python版)
该文档涉及的组件

第1.3节 Alink的功能


1.3.1 丰富的算法库

Alink拥有丰富的批式算法和流式算法,可帮助数据分析和应用开发人员端到端地完成从数据处理、特征工程、模型训练到预测的整个流程工作。Alink开源算法如图1-1所示,在Alink提供的开源算法模块中,每一个模块都包含流式算法和批式算法。比如线性回归,包含批式线性回归训练、流式线性回归预测和批式线性回归预测。


1.3.2 多样的使用体

Alink使用Java研发,原生提供了整套Java调用接口,可以在单机中编辑、调试、运行Alink任务,也可以将Alink任务编译、发布到Flink集群中运行。此外,Alink也提供了Python版本:PyAlink。可以通过Jupyter等Notebook的方式使用Alink,提升其交互式和可视化体验;PyAlink既支持单机运行,又支持集群提交。PyAlink打通了Operator(Alink组件)和DataFrame的接口,因此,Alink的整个算法流程可无缝融入Python。PyAlink也提供了使用Python函数来调用UDF或者UDTF的方法。PyAlink在Notebook中的使用如下图所示。图中展示了一个模型训练预测,并打印出了预测结果的过程。


1.3.3SparkML的对比

在离线学习算法方面,Alink与SparkML的性能基本相当。下图给出的是一些经典算法的性能对比:对于同一算法,采用相同的数据集、同样的迭代次数等参数。其中的加速比指的是,SparkML所用的时间除以Alink所用的时间之比。若加速比的值为1x(1倍),则说明Alink与SparkML的性能相当。加速比的值越大,说明Alink的性能越好。

通过上图可以看出,Alink在大部分算法方面的性能优于SparkML,在个别算法方面的性能比SparkML弱,二者在整体上是一个相当的水平。但是,在功能的完备性方面,Alink更有优势,Alink除了覆盖了SparkML的算法,还包含流式算法、流批混跑、在线学习、中文分词等功能。