确定输入是 Parquet 还是平面文件

时间:2021-02-01 16:25:04

标签: java maven apache-spark-sql parquet flat-file

我正在处理一个 Java Maven 项目,我已经到了需要确定来自 HDFS 的输入是 CSV 文件目录还是 Parquet 文件的地步。根据我的理解,我可能是错的,我相信 HDFS 将 Parquet 文件存储为目录。

我的问题是,确定这两个潜在输入之间的差异的好方法是什么,以便我可以适当地处理它们中的每一个?

1 个答案:

答案 0 :(得分:0)

您可以使用 Hadoop FileSystem API

如果要检查 hdfsPath 是目录还是文件,请使用 getFileStatus

Path path = new Path(hdfsPath);
FileSystem fs = path.getFileSystem(conf);

FileStatus fileStatus = fs.getFileStatus(path);

if (fileStatus.isFile()) {
  // .... logic for file
} else {
  // ... logic for directory
}

要检查目录是否包含 Parquet on CSV 文件,您可以使用 listStatus 方法列出该目录下的文件,对于每个文件,您可以检查其扩展名以确定其类型({{1} } 或 .csv)。

相关问题