java - 使用 Java 将 zip 文件解压到 HDFS

标签 java apache-spark zip4j

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

我有使用 Spark 结构化流从 Kafka 读取消息的代码。

如何将文件解压到HDFS?

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

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

最佳答案

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>);

关于java - 使用 Java 将 zip 文件解压到 HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54674851/

相关文章:

java - TaskSchedulerImpl : Initial job has not accepted any resources;

python - 从 pyspark.ml.pipeline 中的管道对象检索转换后的数据集

java - zip4j可以用来解压Tar文件吗?

java - 如何在java中为zip存档启用密码?

java - zip4j setFileNameCharset 不起作用

java - 使用JavaCompiler编译代码时如何设置.class文件夹路径?

java - 为什么变量 x 不采用我给出的值,并且当传递给其他类时变得与变量 in 相等?

java - 在碰撞检测中获取 java.util.ConcurrentModificationError

java - 查找数组中的最高值,但是如果最高值在数组中存在两个或多个位置怎么办?

apache-spark - 启动 Spark 壳时出错