我在 Windows 7 上。我安装了 mrjob,当我从网站运行示例 word_count 文件时,它在本地机器上运行良好。但是,尝试在 Amazon EMR 上运行它时出现错误。我什至测试了只用 boto 连接到 amazon s3 并且它可以工作。
mrjob.conf 文件
runners:
emr:
aws_access_key_id: xxxxxxxxxxxxx
aws_region: us-east-1
aws_secret_access_key: xxxxxxxx
ec2_key_pair: bzy
ec2_key_pair_file: C:\aa.pem
ec2_instance_type: m1.small
num_ec2_instances: 3
s3_log_uri: s3://myunique/
s3_scratch_uri: s3://myunique/
在我的 cmd 中运行以下命令
python word_count.py -c mrjob.conf -r emr mytext.txt
它产生
根据建议这是与 Windows 路径相关的问题,我仔细检查了源代码中的 parse.py,它似乎对处理窗口文件类型进行了相关检查
# Used to check if the candidate candidate uri is actually a local windows path.
WINPATH_RE = re.compile(r"^[aA-zZ]:\\")
def is_windows_path(uri):
"""Return True if *uri* is a windows path."""
if WINPATH_RE.match(uri):
return True
else:
return False
def is_uri(uri):
"""Return True if *uri* is any sort of URI."""
if is_windows_path(uri):
return False
return bool(urlparse(uri).scheme)
我不明白的是,即使在更新代码之后我仍然会收到错误消息,而且我不确定如何继续前进。