共计 4071 个字符,预计需要花费 11 分钟才能阅读完成。
刚公布的 Alink 1.1.0 版本,反对公布到 Maven Central,Java 开发者通过 Maven 能够疾速搭建 Alink 机器学习我的项目。本文将演示一个简略的构建计划,便于爱好者疾速入门。
先说一下相干的环境,Windows 零碎,应用的 Jave 编辑器是 InterlliJ IDEA(Version 2019.3.2),Java SDK 的版本为 1.8。
第一步,创立我的项目
在 InterlliJ IDEA 中抉择创立新我的项目,并抉择 Maven,如下图所示:
应用默认选项,不必勾选 ”Create from archetype”,点击 ”Next” 按钮,进入下图所示页面,这里只需填写 Name 项,其它内容会主动关联生成。
最初,点击 ”Finish” 按钮,就实现了 Maven 工程的创立。
咱们在 InterlliJ IDEA 编辑器中能够看到整个我的项目的构造如下:
咱们查看 pom.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>AlinkMavenExample</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
第二步,HelloAlink
在开始引入 Alink 相干 jar 包前,咱们先进行一个小试验,运行简略的打印输出。在 src -> main -> java 下新建一个 package: “org.example”,再新建一个 Java Class:
"HelloAlink.java"
package org.example;
public class HelloAlink {public static void main(String[] args) {System.out.println("Hello Alink!");
}
}
运行该代码,后果失常打印。
而后,咱们在看一下 maven 打包的状况,进入 IDEA 的 Maven 窗口,如下图所示:
在 Maven 窗口中点击执行 ”package” 操作,操作失常执行实现。在该我的项目文件夹的 target 子文件夹下能够看到打包进去的 AlinkMavenExample-1.0-SNAPSHOT.jar。
第三步,批改 POM 文件,导入 Alink 相干 jar 包
这是本文中最重要的环节,在 POM 文件中设置 Alink 相干的 dependency,从而在我的项目中能够应用 Alink 库函数。
能够从如下两个地址中找到 Alink1.1.0 的 dependency 设置:
[1]https://github.com/alibaba/Al…
[2]https://zhuanlan.zhihu.com/p/…
其实,Alink 提供了两个设置计划,别离针对 Flink 1.10 和 Flink 1.9 版本,这里咱们抉择针对 Flink 最新版本的计划。复制 dependency 项,并粘贴到 POM 的 <dependencies>…</dependencies> 中,改变后的 POM 文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>AlinkMavenExample</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.alibaba.alink</groupId>
<artifactId>alink_core_flink-1.10_2.11</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-scala_2.11</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner_2.11</artifactId>
<version>1.10.0</version>
</dependency>
</dependencies>
</project>
这是 IDEA 会弹出小窗如下:
抉择 ”Import Changes”,须要期待一段时间,将所需的 jar 包下载到本地 maven 仓库。
第四步,构建运行
参考 Alink 的 Java 例子:
[3]https://github.com/alibaba/Al…
在以后我的项目中新建 KMeansExample.java,保留以后的 package 门路 package org.example;
,将 Alink 例子中的其它代码间接复制过去。代码如下:
package org.example;
import com.alibaba.alink.operator.batch.BatchOperator;
import com.alibaba.alink.operator.batch.source.CsvSourceBatchOp;
import com.alibaba.alink.pipeline.Pipeline;
import com.alibaba.alink.pipeline.clustering.KMeans;
import com.alibaba.alink.pipeline.dataproc.vector.VectorAssembler;
/**
* Example for KMeans.
*/
public class KMeansExample {public static void main(String[] args) throws Exception {
String URL = "https://alink-release.oss-cn-beijing.aliyuncs.com/data-files/iris.csv";
String SCHEMA_STR = "sepal_length double, sepal_width double, petal_length double, petal_width double, category string";
BatchOperator data = new CsvSourceBatchOp().setFilePath(URL).setSchemaStr(SCHEMA_STR);
VectorAssembler va = new VectorAssembler()
.setSelectedCols(new String[]{"sepal_length", "sepal_width", "petal_length", "petal_width"})
.setOutputCol("features");
KMeans kMeans = new KMeans().setVectorCol("features").setK(3)
.setPredictionCol("prediction_result")
.setPredictionDetailCol("prediction_detail")
.setReservedCols("category")
.setMaxIter(100);
Pipeline pipeline = new Pipeline().add(va).add(kMeans);
pipeline.fit(data).transform(data).print();}
}
而后,抉择运行 KMeansExample.main(),可看到失常的输入后果如下(显示篇幅关系,只保留了头两条和开端 2 条数据):
category|prediction_result|prediction_detail
--------|-----------------|-----------------
Iris-setosa|0|0.49148233882941467 0.3017994492572307 0.2067182119133547
Iris-versicolor|1|0.3249474882831926 0.396327539544579 0.2787249721722284
......
Iris-virginica|2|0.13906038938197507 0.38042216584746935 0.4805174447705556
Iris-virginica|1|0.18304443868954268 0.43146730855314785 0.38548825275730947
以上,即可实现 Alink 我的项目的创立。