Alink教程(Python版)

第3.2.4节 读取Parquet文件格式数据


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条数据。