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

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

    1. new 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|
    9. class|f0|f1|f2|f3
    10. -----|---|---|---|---
    11. Iris-setosa|5.1000|3.5000|1.4000|0.2000
    12. Iris-versicolor|5.0000|2.0000|3.5000|1.0000
    13. Iris-setosa|5.1000|3.7000|1.5000|0.4000
    14. Iris-virginica|6.4000|2.8000|5.6000|2.2000
    15. Iris-versicolor|6.0000|2.9000|4.5000|1.5000
    16. Iris-setosa|4.9000|3.0000|1.4000|0.2000
    17. Iris-versicolor|5.7000|2.6000|3.5000|1.0000
    18. Iris-setosa|4.6000|3.6000|1.0000|0.2000
    19. Iris-versicolor|5.9000|3.0000|4.2000|1.5000
    20. Iris-virginica|6.3000|2.8000|5.1000|1.5000
    21. ......
    22. Iris-virginica|7.2000|3.0000|5.8000|1.6000
    23. Iris-versicolor|4.9000|2.4000|3.3000|1.0000
    24. Iris-virginica|7.4000|2.8000|6.1000|1.9000
    25. Iris-virginica|6.5000|3.2000|5.1000|2.0000
    26. Iris-versicolor|6.6000|2.9000|4.6000|1.3000
    27. Iris-virginica|7.9000|3.8000|6.4000|2.0000
    28. Iris-versicolor|5.2000|2.7000|3.9000|1.4000
    29. Iris-virginica|6.4000|2.7000|5.3000|1.9000
    30. Iris-virginica|6.8000|3.0000|5.5000|2.1000
    31. Iris-virginica|5.7000|2.5000|5.0000|2.0000

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

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

    运行结果如下,由于输出的记录条数较多,这里省略了中间的大部分记录。

    1. class|f0|f1|f2|f3
    2. -----|---|---|---|---
    3. Iris-setosa|5.1000|3.5000|1.4000|0.2000
    4. Iris-versicolor|5.0000|2.0000|3.5000|1.0000
    5. Iris-setosa|5.1000|3.7000|1.5000|0.4000
    6. Iris-virginica|6.4000|2.8000|5.6000|2.2000
    7. Iris-versicolor|6.0000|2.9000|4.5000|1.5000
    8. Iris-setosa|4.9000|3.0000|1.4000|0.2000
    9. Iris-versicolor|5.7000|2.6000|3.5000|1.0000
    10. Iris-setosa|4.6000|3.6000|1.0000|0.2000
    11. Iris-versicolor|5.9000|3.0000|4.2000|1.5000
    12. ......
    13. Iris-virginica|7.2000|3.6000|6.1000|2.5000
    14. Iris-virginica|7.2000|3.0000|5.8000|1.6000
    15. Iris-versicolor|4.9000|2.4000|3.3000|1.0000
    16. Iris-virginica|7.4000|2.8000|6.1000|1.9000
    17. Iris-virginica|6.5000|3.2000|5.1000|2.0000
    18. Iris-versicolor|6.6000|2.9000|4.6000|1.3000
    19. Iris-virginica|7.9000|3.8000|6.4000|2.0000
    20. Iris-versicolor|5.2000|2.7000|3.9000|1.4000
    21. Iris-virginica|6.4000|2.7000|5.3000|1.9000
    22. Iris-virginica|6.8000|3.0000|5.5000|2.1000
    23. Iris-virginica|5.7000|2.5000|5.0000|2.0000