2012-09-24 5 views
6

Ich schreibe ein externes Skript, um einen mapreduce-Auftrag über das Python-mrjob-Modul auf meinem Laptop auszuführen (nicht in Amazon Elastic Compute Cloud oder einem großen Cluster).Wie spezifiziert man die Eingabedatei für einen Läufer aus Python?

Ich lese von der mrjob documentation, dass ich MRJob.make_runner() verwenden sollte, um einen mapreduce-Auftrag von einem separaten Python-Skript wie folgt auszuführen.

mr_job = MRYourJob(args=['-r', 'emr']) 
with mr_job.make_runner() as runner: 
    ... 

Wie kann ich jedoch angeben, welche Eingabedatei verwendet werden soll? Ich möchte eine Datei "datalines.txt" im selben Verzeichnis wie mein mapreduce-Skript und ein anderes Python-Skript verwenden, das die Map reduce ausführt. Außerdem, wie gebe ich die Ausgabe an?

Ich konnte keine Funktion in der mrjob-Dokumentation finden, die es mir ermöglicht, diese Parameter anzugeben.

Antwort

5

Getting started guide schlägt vor, dass die Eingabe von stdin oder Dateien auf der Kommandozeile geliefert gelesen wird:

mr_job = MRYourJob(args=["datalines.txt"])