parquet-tools用法详解

1.parquet-tools用途

大数据系统里面,parquet是常见的一种列存储压缩格式。因为是压缩格式,我们无法直接查看parquet文件里的数据,这个时候parquet-tools就给我们提供了一个方便的途径对parquet文件进行查看。

先将parquet-tools下载到本地,比如我下载的是parquet-tools-1.11.0.jar

2.设置parquetview别名

为了方便实用,我们设置一个parquetview的别名。

alias parquetview='hadoop --cluster hadoopcluster jar /your/parquet-tools/path/parquet-tools-1.11.0.jar

3.查看元数据

对于parquet文件,第一下我们可能需要了解的就是元信息,这个时候通过schema/meta参数就可以实现查看元信息。

parquetview schema /hdfs/path/paqeutfile

最后的结果如下

message spark_schema {
  optional int64 id;
  optional fixed_len_byte_array(12) c1 (DECIMAL(27,6));
  optional fixed_len_byte_array(12) c2 (DECIMAL(27,6));
  optional fixed_len_byte_array(12) c3 (DECIMAL(27,6));
  optional fixed_len_byte_array(12) c4 (DECIMAL(27,6));
  optional fixed_len_byte_array(12) c5 (DECIMAL(27,6));
  optional fixed_len_byte_array(12) c6 (DECIMAL(27,6));
}

如果换meta参数

parquetview meta /hdfs/path/paqeutfile

结果如下

file schema:                    spark_schema
--------------------------------------------------------------------------------
id:                      OPTIONAL INT64 R:0 D:1
c1:   OPTIONAL FIXED_LEN_BYTE_ARRAY L:DECIMAL(27,6) R:0 D:1
c2:  OPTIONAL FIXED_LEN_BYTE_ARRAY L:DECIMAL(27,6) R:0 D:1
c3:   OPTIONAL FIXED_LEN_BYTE_ARRAY L:DECIMAL(27,6) R:0 D:1
c4:  OPTIONAL FIXED_LEN_BYTE_ARRAY L:DECIMAL(27,6) R:0 D:1
c5:  OPTIONAL FIXED_LEN_BYTE_ARRAY L:DECIMAL(27,6) R:0 D:1
c6: OPTIONAL FIXED_LEN_BYTE_ARRAY L:DECIMAL(27,6) R:0 D:1

row group 1:                    RC:7237530 TS:73588395 OFFSET:4
--------------------------------------------------------------------------------
id:                       INT64 SNAPPY DO:0 FPO:4 SZ:44362540/57903375/1.31 VC:7237530 ENC:BIT_PACKED,PLAIN,RLE ST:[min: 200, max: 1000093565052, num_nulls: 0]
c1:    FIXED_LEN_BYTE_ARRAY SNAPPY DO:0 FPO:44362544 SZ:573140/2614170/4.56 VC:7237530 ENC:BIT_PACKED,PLAIN,RLE ST:[num_nulls: 7065571, min/max not defined]
c2:   FIXED_LEN_BYTE_ARRAY SNAPPY DO:0 FPO:44935684 SZ:783615/2614170/3.34 VC:7237530 ENC:BIT_PACKED,PLAIN,RLE ST:[num_nulls: 7065571, min/max not defined]
c3:    FIXED_LEN_BYTE_ARRAY SNAPPY DO:0 FPO:45719299 SZ:589500/2614170/4.43 VC:7237530 ENC:BIT_PACKED,PLAIN,RLE ST:[num_nulls: 7065571, min/max not defined]
c4:   FIXED_LEN_BYTE_ARRAY SNAPPY DO:0 FPO:46308799 SZ:824869/2614170/3.17 VC:7237530 ENC:BIT_PACKED,PLAIN,RLE ST:[num_nulls: 7065571, min/max not defined]
c5:   FIXED_LEN_BYTE_ARRAY SNAPPY DO:0 FPO:47133668 SZ:709686/2614170/3.68 VC:7237530 ENC:BIT_PACKED,PLAIN,RLE ST:[num_nulls: 7065571, min/max not defined]
c6:  FIXED_LEN_BYTE_ARRAY SNAPPY DO:0 FPO:47843354 SZ:1194658/2614170/2.19 VC:7237530 ENC:BIT_PACKED,PLAIN,RLE ST:[num_nulls: 7065571, min/max not defined]

从上面的输出可以看出来,meta参数输出的信息,比schema参数输出信息更详尽,可以看到数据的压缩方式,是否压缩,数据的null值数量,min/max值等。

4.查看数据

cat命令

parquetview cat /hdfs/path/paqeutfile | head

cat命令可以查看数据里面的内容,用法与linux系统中的cat用法类似。

同样可以查看数据的命令还包括head,head命令默认展示前面5行数据。

parquetview head /hdfs/path/paqeutfile | head

head -n,用法跟linux中一样,可以查看数据前n行。

parquetview head -n 10 /hdfs/path/paqeutfile
id = 2532110138
id = 1126637102
id = 2248319801
id = 1114590219
id = 2264730658
id = 1453715009
id = 2684369799
id = 1159669102
id = 10180075
id = 2541230410

5.查看文件行数与大小

rowcount命令可以查看文件的行数

parquetview rowcount /hdfs/path/paqeutfile
Total RowCount: 7237530

size命令可以查看文件的大小

parquetview size /hdfs/path/paqeutfile
Total Size: 49038008 bytes

你可能感兴趣的:(spark,parquet-tools,schema,meta,查看元数据)