java - 确定输入是 Parquet 还是平面文件
问题描述
我正在处理一个 Java Maven 项目,并且我已经到了需要确定来自 HDFS 的输入是 CSV 文件目录还是 Parquet 文件的地步。根据我的理解,我可能是错的,我相信 HDFS 将 Parquet 文件存储为目录。
我的问题是,确定这两个潜在输入之间差异的好方法是什么,以便我可以适当地处理它们中的每一个?
解决方案
您可以使用Hadoop FileSystem API。
如果要检查 anhdfsPath
是目录还是文件,请使用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
方法列出该目录下的文件,对于每个文件,您可以检查其扩展名以确定其类型(.csv
或.parquet
)。
推荐阅读
- javascript - 使用 Angular 显示传单地图精确定位的问题
- java - 返回子数组中的最大值
- c# - 我在 Form1.Designer.cs 上有一个 .NET C# Windows 窗体应用程序错误
- provider - onnxruntime with use_dml mix build hanppen error 使用 DML 执行提供程序时不支持启用内存模式
- c++ - C ++如何在一个函数中只使用一次随机设备,同时在另一个函数中多次使用Mersenne twister?
- node.js - 即使升级到 Gulp 4 后,仍然会出现“未定义原始”。有什么方法可以解决吗?
- java - Java TCP 套接字读取不正确
- javascript - 在 Typescript 中使用类创建对象数组
- python - PySimpleGUI 到 android 或到 exe
- java - 使用 Spring Boot 和 STOMP 时,有没有办法让队列不删除消息?