该文档涉及的组件

PyAlink入门示例

简单示例


这里将通过一个简单示例,让读者留下一个初步的Alink印象。


您可以选择如下操作:



检查Alink环境


判断是否已经安装了PyAlink,如果没有安装会自动触发安装。
在安装前会判断是否在中国,便于通过中国的镜像服务器加速软件下载过程。


%%bash

if [ $(pip freeze | grep pyalink | wc -l) -gt 0 ]
then
    echo "PyAlink already installed."
else
    IP_LOCATION=$(curl http://ip-api.com/json/?fields=1)
    echo $IP_LOCATION
    echo "Installing PyAlink..."
    if [[ "$IP_LOCATION" == *"China"* ]]
    then
        echo "Use mirror in China"
        pip3 install pyalink -i https://mirrors.aliyun.com/pypi/simple/
    else
        echo "Use default mirror"
        pip3 install pyalink
    fi
    echo "PyAlink installed."
fi


导入PyAlink


设置本地运行环境,设置本地数据文件路径(默认为当前执行路径)


from pyalink.alink import *
useLocalEnv(1)

import os

DATA_DIR = "." + os.sep


读取网络文件与显示


我们以常用的鸢尾花(iris)数据集为例,演示一下如何读取数据。该数据可以通过网络链接直接下载。Alink的CSV格式数据源读取组件,不但可以读取本地文件,还可以直接读取网络文件;在该组件读取文件的时候需要指定各列数据的名称和类型。下面是具体的代码。在此,读取出数据后,选择前5条数据进行打印输出


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.firstN(5).print()


数据采样及写出


下一步,我们对数据进行采样,采样数为10条,然后连接到CSV格式输出组件CsvSinkBatchOp,并设置相应的输出路径。可以设置覆盖写参数为True。


source.sampleWithSize(10)\
    .link(
        CsvSinkBatchOp()\
            .setFilePath(DATA_DIR + "iris_10.csv")\
            .setOverwriteSink(True)
    )

BatchOperator.execute()


读取本地数据


读取刚才写出的CSV文件,使用LazyPrint方式打印输出,并使用GroupBy操作,得到各类别的样本个数。


CsvSourceBatchOp()\
    .setFilePath(DATA_DIR + "iris_10.csv")\
    .setSchemaStr("sepal_length double, sepal_width double, petal_length double, "
                  + "petal_width double, category string")\
    .lazyPrint(-1, "【 采样数据 】")\
    .groupBy("category", "category, COUNT(*) AS cnt")\
    .print()