【发布时间】:2012-05-12 20:05:48
【问题描述】:
我正在尝试使用 Hadoop Streaming 来运行两个命令,例如 gunzip | map_to_old_format.py,但是 gzip 错误提示“|.gz not found”或类似的内容(仅当通过 Hadoop 运行时.. 如果我运行在命令行上,它工作正常)。
由于我不知道如何即时在 Python 中进行 gunzip,因此我想创建一个 shell 脚本来为我执行此命令的组合(例如 gunzip_and_map_to_old.sh)。我尝试了以下方法,但 gzip 不喜欢(gzip 抱怨“gzip:stdin:不是 gzip 格式”):
#!/bin/bash
while read data; do
echo $data | gunzip | map_to_old_format.py $2
done
关于python gunzip,我尝试了f = gzip.GzipFile("", "rb", fileobj=sys.stdin) 以及here 描述的Wrapper 方法。
【问题讨论】:
标签: python bash hadoop gzip hadoop-streaming