java获取hdfs一个目录下parquet数据条数
时间: 2024-05-14 11:14:23 浏览: 160
parquet-tools,查看hdfs中parquet文件
可以使用以下代码来获取HDFS一个目录下Parquet数据条数:
```java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.parquet.hadoop.ParquetFileReader;
import org.apache.parquet.hadoop.metadata.ParquetMetadata;
public class ParquetRowCount {
public static void main(String[] args) throws Exception {
String path = "/path/to/parquet/directory";
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
Path dirPath = new Path(path);
long rowCount = 0;
for (FileStatus fileStatus : fs.listStatus(dirPath)) {
if (fileStatus.isFile() && fileStatus.getPath().toString().endsWith(".parquet")) {
ParquetMetadata metadata = ParquetFileReader.readFooter(conf, fileStatus.getPath());
rowCount += metadata.getBlocks().stream().mapToLong(block -> block.getRowCount()).sum();
}
}
System.out.println("Total row count: " + rowCount);
}
}
```
其中,`path`是Parquet文件所在的HDFS目录路径,`conf`是Hadoop配置,`fs`是Hadoop文件系统。遍历目录下的所有Parquet文件,使用ParquetFileReader读取footer信息,然后累加每个block的行数即可得到总行数。
阅读全文