如何在HDF中解压缩多个zip文件

2024-04-23 21:33:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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

HDFS位置

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

我想将文件解压缩到HDFS位置,如下所示

^{pr2}$

我正在寻找一些命令像下面的任何技术(火花,猪,蜂巢,…)

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

Tags: 文件csv命令类型datahdfszip技术
2条回答

我用python3在远程hdfs的本地pc上制作了它。如果有帮助的话。。。太棒了! 您可以根据您的pyspark修改以下脚本。在

您需要以下库:

from zipfile import ZipFile
from io import BytesIO
from hdfs import Client, HdfsError

前两个是本机的,应该安装“hdfs”。 我用了https://pypi.org/project/hdfs/。你可以用其他任何你喜欢的。在

下面是脚本:

^{pr2}$

我知道这是一个很好的解决办法,但它是有效的。 希望这对某人有帮助。在

  1. 您可以使用UNIX pipes。 在您的例子中,您需要遍历hdfs中的data文件夹,对于每个zip,您需要执行下面的示例命令

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

  1. 你可以用identitymapper这可能有点奇怪。在
  2. 您可以通过Java尝试^{},它有以下方法。 我在hadoopapi中搜索,我得到了这个我没有尝试过这个,但根据doc它可能会工作。 enter image description here

相关问题 更多 >