我在hdfs中有一个目录,包含大约10000个.xml文件。我有一个python脚本“processxml.py”,它接受一个文件并对其进行一些处理。是否可以对hdfs目录中的所有文件运行脚本,或者我需要先将它们复制到本地才能这样做?
例如,当我对本地目录中的文件运行脚本时,我有:
cd /path/to/files
for file in *.xml
do
python /path/processxml.py
$file > /path2/$file
done
所以基本上,我怎么做同样的事情,但这次文件是在hdfs中?
2条答案
按热度按时间wztqucjr1#
你基本上有两个选择:
1) 使用hadoop streaming connector创建mapreduce作业(这里您只需要map部分)。从shell或在shell脚本中使用以下命令:
2) 创建一个pig脚本并发布python代码。下面是脚本的一个基本示例:
k10s72fa2#
如果您需要处理文件中的数据或在文件系统中移动/cp/rm/等,那么pyspark(带python接口的spark)将是最佳选择之一(速度、内存)。