【Alink】学习&实践-数据源、数据处理、回归、分类、聚类
Alink学习链接汇总
https://www.mianshigee.com/tutorial/Alink-1.0.1/regression.md
https://www.zhihu.com/people/alink_pinshu/posts?page=2
以下将采用jupyter进行学习&实践
#导入这一个包就可以了
from pyalink.alink import *
#重置运行环境,并切换到另一个环境
resetEnv()
useLocalEnv(1, flinkHome=None, config=None)
使用以下一条命令来开始使用 pyalink:设置是本地模式还是云环境
- useLocalEnv(parallelism, flinkHome=None, config=None)
- useRemoteEnv(host, port, parallelism, flinkHome=None, localIp=“localhost”, config=None)
Call resetEnv() to reset environment and switch to another. 使用
resetEnv() 来重置运行环境,并切换到另一个。
能否连接远程 Flink 集群进行计算?
A:通过方法可以连接一个已经启动的 Flink 集群:useRemoteEnv(host, port, parallelism, flinkHome=None, localIp="localhost", shipAlinkAlgoJar=True, config=None)。其中,参数
host 和 port 表示集群的地址;
parallelism 表示执行作业的并行度;
flinkHome 为 flink 的完整路径,默认使用 PyAlink 自带的 flink-1.9.0 路径;
localIp 指定实现 Flink DataStream 的打印预览功能时所需的本机IP地址,需要 Flink 集群能访问。默认为localhost。
shipAlinkAlgoJar 是否将 PyAlink 提供的 Alink 算法包传输给远程集群,如果远程集群已经放置了 Alink 算法包,那么这里可以设为 False,减少数据传输。
Flink-1.10 及以上版本对应的 pyalink 包,还支持类似 pyflink 脚本的远程集群运行方式。
1、数据源读取
例子中所用的文件内容如下:
6.6,3.0,4.4,1.4,Iris-versicolor
5.7,2.9,4.2,1.3,Iris-versicolor
7.7,3.8,6.7,2.2,Iris-virginica
5.1,3.8,1.9,0.4,Iris-setosa
6.2,2.9,4.3,1.3,Iris-versicolor
4.8,3.0,1.4,0.3,Iris-setosa
1.1、读取CSV文件(分批流)
filePath = 'iris.csv'
schema = 'sepal_length double, sepal_width double, petal_length double, petal_width double, category string'
csvSource = CsvSourceBatchOp()\
.setFilePath(filePath)\
.setSchemaStr(schema)\
.setFieldDelimiter(",")
BatchOperator.collectToDataframe(csvSource)
CsvSourceBatchOp() 批运算符
设置set参数:
- filepath文件路径:可以是从本地、hdfs、http读取
schemaStr:设置列名和数据类型(这个的数据类型包含很多:https://www.mianshigee.com/tutorial/Alink-1.0.1/cn-csvsourcebatchop.md
https://zhuanlan.zhihu.com/p/103027854)
setFieldDelimiter字段分割符
skipBlankLine是否忽略空行,默认true
ignoreFirstLine是否忽略第一行数据,默认false
rowDelimiter 行分隔符,默认\nBatchOperator.collectToDataframe(csvSource)
或者写成csvSource.collectToDataframe()
每个批式数据源或批式算子都支持collectToDataframe()方法,数据结果转成Python的DataFrame形式。则可以利用Python丰富的函数库及可视化功能,进行后续的分析和显示
dataframe python数组和alink批数据源之间转换
(https://zhuanlan.zhihu.com/p/97462270)
import pandas as pd
arr_2D =[
['Alice',1],
['Bob',2],
['Cindy',3]
]
df = pd.DataFrame(arr_2D)
#使用BatchOperator的fromDataFrame方法,将前面定义好的DataFrame类型变量df作为第一个参数,后面的参数用来定义数据的