Hadoop copyToLocal
正在目标目录中创建.crc
个文件以及实际的数据文件,这些文件对我来说是不必要的,并且会影响我的进一步数据处理。有没有办法避免创建而不是以后删除它?
val config = new Configuration()
val fs = FileSystem.get(config)
fs.copyToLocalFile(new Path(src),new Path(dest))
Maven依赖:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
答案 0 :(得分:2)
java中还有另一个版本的copyToLocal函数。
fs.copyToLocalFile(boolean delSrc, Path src, Path dst, boolean useRawLocalFileSystem);
RawLocalFileSystem是非crc文件系统。因此,它将不会在本地创建任何crc文件
**delSrc** whether to delete the src
**src** path
**dst** path
**useRawLocalFileSystem** whether to use RawLocalFileSystem as local file system or not.
因此,将useRawLocalFileSystem = true可以解决您的问题。
答案 1 :(得分:1)
在复制文件之前,请使用其中一个或两个
fs.setWriteChecksum(false)
fs.setVerifyChecksum(false)
但是,正如我所提到的,它是一个文件校验和,这意味着验证成功的副本是必要的。如果你有一个具有不同内容的同名文件,那么它实际上是一个不同的文件,你应该处理这种情况。