我在hdfs中有一个zip文件,我需要在zip文件中添加一个文件并保存在同一个HDFS位置。任何例子都将不胜感激。
我有以下代码。
val filePattern = s"${hdfsFolderPath}/${filePath}.txt"
val zipFilePath = hdfsWrapper.getFileNameFromPattern(s"${targetFilePath}/*.zip")
if (hdfsWrapper.filter(filePattern).size() > 0)
{
Try
{
val zipEntry = new ZipEntry(filePattern)
val zos: ZipOutputStream = new ZipOutputStream(new FileOutputStream(zipFilePath))
zos.putNextEntry(zipEntry)
zos.closeEntry()
zos.close()
}
}
想知道上面的代码是否正确?
答案 0 :(得分:0)
我相信您的代码会导致zip文件被替换为仅包含新文件的新文件。有关将文件添加到zip存档的示例,请参阅Appending files to a zip file with Java。
我对HDFS并不是非常熟悉,但我怀疑你也不能直接写这个,你可能要创建新的zip文件,然后在HDFS中替换它