共计 1421 个字符,预计需要花费 4 分钟才能阅读完成。
Alink 提供了 collectToDataframe() 和 fromDataframe() 办法,实现了 DataFrame 和 Alink 批式数据的互相转化。
Alink 批式数据 -> DataFrame
Alink 的批式数据源或者计算结果,如果能转成 Python 的 DataFrame 模式,则能够利用 Python 丰盛的函数库及可视化性能,进行后续的剖析和显示。
Alink 中每个批式数据源或批式算子都反对 collectToDataframe() 办法,不须要输出参数,返回的后果就是 DataFrame。留神,该办法中带有 collect 字样,表明其执行过程中会应用 Flink 的 collect 办法,触发 Flink 工作执行。
示例如下,咱们应用 CsvSourceBatchOp 读取 UCI 网站的 iris.data 数据。
source = CsvSourceBatchOp()\
.setFilePath("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data")\
.setSchemaStr("sepal_length double, sepal_width double, petal_length double, petal_width double, category string")
而后调用变量 source 的 collectToDataframe() 办法,失去相应的 DataFrame,付给变量 df_iris。
df_iris = source.collectToDataframe()
到这里,咱们就曾经实现了 Alink 数据到 Python DataFrame 的转化,上面咱们就能够应用 Python 的函数,进一步解决 df_iris,譬如:应用 head() 办法,显示前 5 条数据。
df_iris.head()
运行后果为:
DataFrame -> Alink 批式数据
对于 DataFrame 模式的数据,Alink 提供了 fromDataframe() 办法,将数据转换为 Alink 批式数据。具体应用示例如下:
iris = BatchOperator.fromDataframe(df_iris, "sepal_length double, sepal_width double, petal_length double, petal_width double, category string")
应用 Alink 批式算子 BatchOperator 的静态方法 fromDataframe(),第一个参数为 DataFrame 数据,第二个参数为数据 Schema 的形容,因为 DataFrame 的数据类型与 Alink 有点差别,通过设置 schema 参数,能够严格保障转化后的数据与咱们冀望的统一。对于 Schema String 更多的介绍能够参见:
Alink Schema String 简介
https://zhuanlan.zhihu.com/p/…
最初,咱们看一下转换后的 Alink 批式数据 iris,取前 5 条数据进行打印输出,代码如下:
iris.firstN(5).print()
结果显示为:
以上。Alink 是基于 Flink 的机器学习算法平台,欢送拜访 Alink 的 GitHub 获取下载链接及更多信息。也欢送退出 Alink 开源用户群进行交换~
Alink GitHub 链接:
https://github.com/alibaba/Alink
▼ 钉钉扫码退出 Alink 技术交换群 ▼