简单示例

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

您可以选择如下操作:

检查Alink环境

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

  1. %%bash
  2. if [ $(pip freeze | grep pyalink | wc -l) -gt 0 ]
  3. then
  4. echo "PyAlink already installed."
  5. else
  6. IP_LOCATION=$(curl http://ip-api.com/json/?fields=1)
  7. echo $IP_LOCATION
  8. echo "Installing PyAlink..."
  9. if [[ "$IP_LOCATION" == *"China"* ]]
  10. then
  11. echo "Use mirror in China"
  12. pip3 install pyalink -i https://mirrors.aliyun.com/pypi/simple/
  13. else
  14. echo "Use default mirror"
  15. pip3 install pyalink
  16. fi
  17. echo "PyAlink installed."
  18. fi

导入PyAlink

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

  1. from pyalink.alink import *
  2. useLocalEnv(1)
  3. import os
  4. DATA_DIR = "." + os.sep

读取网络文件与显示

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

  1. source = CsvSourceBatchOp()\
  2. .setFilePath("http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data")\
  3. .setSchemaStr("sepal_length double, sepal_width double, petal_length double, "
  4. + "petal_width double, category string")
  5. source.firstN(5).print()

数据采样及写出

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

  1. source.sampleWithSize(10)\
  2. .link(
  3. CsvSinkBatchOp()\
  4. .setFilePath(DATA_DIR + "iris_10.csv")\
  5. .setOverwriteSink(True)
  6. )
  7. BatchOperator.execute()

读取本地数据

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

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