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()