我正在处理一个 Java Maven 项目,我已经到了需要确定来自 HDFS 的输入是 CSV 文件目录还是 Parquet 文件的地步。根据我的理解,我可能是错的,我相信 HDFS 将 Parquet 文件存储为目录。
我的问题是,确定这两个潜在输入之间的差异的好方法是什么,以便我可以适当地处理它们中的每一个?
答案 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
)。