python - 如何在 HDFS 中解压多个 zip 文件

标签 python hadoop apache-spark mapreduce apache-pig

我在 HDFS 中有多个 zip 文件,其中包含两种类型的文件(A.csvB.csv)

HDFS 位置

/data/jan.zip --> contains A.csv & B.csv 
/data/feb.zip --> contains A.csv & B.csv

我想将文件提取到 HDFS 位置,如下所示

/data/jan/A.csv
/data/jan/B.csv
/data/feb/A.csv
/data/feb/B.csv

我正在寻找任何技术(spark,pig,hive,..)中类似下面的命令

hadoop fs -unzip hdfs://..../abc.zip

最佳答案

  1. 您可以使用 UNIX 管道。 在您的情况下,您需要遍历 hdfs 中的数据文件夹,对于每个 zip,您需要执行下面的示例,例如命令

例如: hadoop fs -cat abc.zip |解压缩-d xxxx | hadoop fs -put src dest

  1. 您可以使用 identitymapper 这可能有点奇怪。
  2. 你可以试试FileUtils通过具有以下方法的 Java。 我在 Hadoop API 中搜索,得到了这个我还没有尝试过,但根据文档,它可能有效。 enter image description here

关于python - 如何在 HDFS 中解压多个 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37082431/

相关文章:

hadoop - 如何获取现有 Hive 表的 SerDe 属性

sql - 获取 Hive 中某一行的最大值的列

python - 在 Python 中从 Spark DataFrame 创建 labeledPoints

apache-spark - 不理解结构化流中的更新模式和水印

python - 如何在不使用 ipython 的情况下将 jupyter notebook 配置为具有带有某些导入的预加载单元格?

python - 更改变量值时的 PyQt 事件

python - 导入tensorflow时出错

java - 如何在Hadoop集群中加载native-hadoop库?

Scala Spark 连接到远程集群

python - 如何在 Django Admin 的 "Change"页面中显示内联上传的图像?