我正在使用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?
答案 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>);