我在 HDFS 中有多个 zip 文件,其中包含两种类型的文件(A.csv
和 B.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
最佳答案
- 您可以使用 UNIX
管道
。 在您的情况下,您需要遍历 hdfs 中的数据文件夹,对于每个 zip,您需要执行下面的示例,例如命令
例如:
hadoop fs -cat abc.zip |解压缩-d xxxx | hadoop fs -put src dest
- 您可以使用 identitymapper 这可能有点奇怪。
- 你可以试试
FileUtils
通过具有以下方法的 Java。 我在 Hadoop API 中搜索,得到了这个我还没有尝试过,但根据文档,它可能有效。
关于python - 如何在 HDFS 中解压多个 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37082431/