Apache Parquet(https://parquet.apache.org)是一种开源的、面向列的数据文件格式,提供了高效的数据压缩和编码方案,文件名后缀为”.parquet” 。
    由于Parquet文件中包含了数据的Schema信息,所以在读取数据时,只需输入文件的路径即可。Alink的批式/流式读取Parquet文件的组件,也只需设置FilePath参数,使用起来非常简单。

    下面先演示一个批式读取的示例,具体代码如下。文件名称为“iris.parquet”,存储在OSS文件系统上,可以通过HTTP方式访问。使用Alink ParquetSourceBatchOp组件进行读取,然后进行统计操作并打印输出统计结果,最后打印输出一些数据。

    1. ParquetSourceBatchOp()\
    2. .setFilePath("https://alink-test-data.oss-cn-hangzhou.aliyuncs.com/iris.parquet")\
    3. .lazyPrintStatistics()\
    4. .print()

    运行结果如下,统计信息显示有150条记录,和iris数据集的条数相符;

    1. Summary:
    2. |colName|count|missing| sum| mean|variance|min|max|
    3. |-------|-----|-------|-----|------|--------|---|---|
    4. | class| 150| 0| NaN| NaN| NaN|NaN|NaN|
    5. | f0| 150| 0|876.5|5.8433| 0.6857|4.3|7.9|
    6. | f1| 150| 0|458.1| 3.054| 0.188| 2|4.4|
    7. | f2| 150| 0|563.8|3.7587| 3.1132| 1|6.9|
    8. | f3| 150| 0|179.8|1.1987| 0.5824|0.1|2.5|

    随后是打印输出的部分数据。
    image.png

    也可以使用流的方式读取数据,具体示例代码如下。使用Alink ParquetSourceStreamOp组件进行读取,打印输出数据。

    1. ParquetSourceStreamOp()\
    2. .setFilePath("https://alink-test-data.oss-cn-hangzhou.aliyuncs.com/iris.parquet")\
    3. .print()
    4. StreamOperator.execute()

    运行结果如下,对于流式数据分时间窗口进行显示,这里是最后一个窗口的内容,该窗口内共收到了63条数据。
    image.png