Apache Parquet(https://parquet.apache.org)是一种开源的、面向列的数据文件格式,提供了高效的数据压缩和编码方案,文件名后缀为".parquet" 。
由于Parquet文件中包含了数据的Schema信息,所以在读取数据时,只需输入文件的路径即可。Alink的批式/流式读取Parquet文件的组件,也只需设置FilePath参数,使用起来非常简单。
下面先演示一个批式读取的示例,具体代码如下。文件名称为“iris.parquet”,存储在OSS文件系统上,可以通过HTTP方式访问。使用Alink ParquetSourceBatchOp组件进行读取,然后进行统计操作并打印输出统计结果,最后打印输出一些数据。
ParquetSourceBatchOp()\ .setFilePath("https://alink-test-data.oss-cn-hangzhou.aliyuncs.com/iris.parquet")\ .lazyPrintStatistics()\ .print()
运行结果如下,统计信息显示有150条记录,和iris数据集的条数相符;
Summary: |colName|count|missing| sum| mean|variance|min|max| |-------|-----|-------|-----|------|--------|---|---| | class| 150| 0| NaN| NaN| NaN|NaN|NaN| | f0| 150| 0|876.5|5.8433| 0.6857|4.3|7.9| | f1| 150| 0|458.1| 3.054| 0.188| 2|4.4| | f2| 150| 0|563.8|3.7587| 3.1132| 1|6.9| | f3| 150| 0|179.8|1.1987| 0.5824|0.1|2.5|
随后是打印输出的部分数据。
也可以使用流的方式读取数据,具体示例代码如下。使用Alink ParquetSourceStreamOp组件进行读取,打印输出数据。
ParquetSourceStreamOp()\ .setFilePath("https://alink-test-data.oss-cn-hangzhou.aliyuncs.com/iris.parquet")\ .print() StreamOperator.execute()
运行结果如下,对于流式数据分时间窗口进行显示,这里是最后一个窗口的内容,该窗口内共收到了63条数据。