使用Java将zip文件提取到HDFS

时间:2019-02-13 16:19:49

标签: java apache-spark zip4j

我正在使用Java-Spark,我从Kafka主题获得消息,该消息指示zip文件路径,我想获取该zip文件并将其解压缩到HDFS。

我有一些代码可以通过Spark结构化流从Kafka中读取消息。

将文件提取到HDFS的方法是什么?

我正在使用ZipFile中的net.lingala.zip4j.core.ZipFile,如下所示:

ZipFile zipFile = new ZipFile(pathFromKafka);
zipFile.extractAll("?");//What should I write here?

1 个答案:

答案 0 :(得分:0)

ZipFile不允许您将文件提取到HDFS 您可以将文件提取到本地文件系统,然后将这些文件放入HDFS:

//imports required 
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;

//some class here .....
Configuration conf = new Configuration();
conf.set("fs.defaultFS", <hdfs write endpoint>);
FileSystem fs = FileSystem.get(conf);
fs.copyFromLocalFile(<src>, <dst>);
相关问题