Rapmedusa

Python-Implementierung von MapReduce-Abfragen für Redis
Jetzt downloaden

Rapmedusa Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • MIT/X Consortium Lic...
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Greg Leighton
  • Website des Verlags:
  • http://github.com/gleighto/

Rapmedusa Stichworte


Rapmedusa Beschreibung

RAPMEDUSA ist ein Python-Modul, um MapReduce-Abfragen über einem REDIS-Schlüsselwert-Speicher zu implementieren. Es zielt darauf ab, Funktionen zu bieten, die ähnlich ist (in gewisserem Hinsicht) bis zum Ansichten von CouchDB und MONGODBs MAPREDUCE-Datenbankkommando. py. Natürlich benötigen Sie auch eine laufende Redis-Instanz, um eine Verbindung herzustellen. In beiden Fällen sollte jede Version> = 2.0 kompatibel sein mit RAPMEDUSA.Installation Sudo PIP installieren Rapmedusaor Sudo Easy_Install Rapmedusaor aus Quelle: Sudo Python Setup.py InstalloverViewFirst, Importieren der erforderlichen Module: >>> Import Redis >>> aus Rapmedusa Import emitt , map_reducenext, Verbindung zu einer laufenden Redis-Instanz in der üblichen Weise herstellen: >>> redis = redis.strictredis (host = 'localhost', port = 6379, db = 0) Zum Schluss müssen die Implementierungen der Karte und der Reduzierung von Funktionen abschließend bereitgestellt werden, und in einen Anruf zur Funktion MAP_REDUCE () übergeben, zusammen mit der aktiven Verbindung zum RediS-Server: >>> Def MyMap (Schlüssel, Val): ... EMIT (Newday, NewVal) >>> Def MyREDUCE (Schlüssel, Werte): ... Return NewVal >>> result = Map_Reduce (Redis, MyMap, MyReduce) Dies gibt ein Python-Wörterbuchobjekt zurück, das das Ergebnis des Ausführens des MAPREDUCE-Jobs enthält. Jeder Schlüssel innerhalb des Wörterbuchs entspricht einem Schlüssel, der in die Verringerung der Verringerung übergeben wird, und enthält den von der Verringerung der Verringerung berechneten Wert für diese Key.DetailsNow Es ist Zeit, einen tieferen Blick in den Moment zu nehmen, wie Rapmedusa einen MAPREDUCE-Job durchführt. Es gibt grundsätzlich 6 Schritte: - Lesen Sie den Eingangsdatensatz von einem angegebenen RediS-Hash.- übergeben jedes Key- / Wert-Paar von den Eingabedaten, die auf die registrierte Kartenfunktion eingestellt sind. - Organisieren Sie Schlüssel- / Wertpaare, die von der Kartenfunktion in einem Satz abgegeben werden. von Redis-Listen, eine Liste pro ausgeprägter emittierter Key.- Jede dieser Listen wird zusammen mit der entsprechenden Key an die registrierte Reduzierungsfunktion weitergeleitet. Unter dem in der Reduzierung verwendeten Schlüssel wird ein Python-Wörterbuch, das den Inhalt des Inhalts des Jobs ausgibt Diese (und anderen in den obigen Schritten verwendeten temporären RediS-Tasten) können optional innerhalb des Anrufs an MAP_REDUCE () angegeben werden. Hier ist eine Liste der zusätzlichen, optionalen Parameter, die im Anruf angegeben werden können: - Inykey - Gibt den Schlüssel an, unter dem der Eingabedatensatz gespeichert ist (Standardeinstellungen für 'RAPMEDUSA: Inputs') - Outkey - Gibt den Schlüssel an, unter dem Die Auftragsausgabe ist gespeichert (Standardeinstellungen für RAPMEDUSA: Ausgänge) - Sortkey - Gibt das Schlüsselpräfix an, unter dem die Ausgabe der Kartenfunktion (Schritt 3 oben) gespeichert ist (Standardeinstellungen an 'RAPMEDUSA: SORTEDVALS') - SorteDkeySet - Gibt den Schlüssel an, unter dem der von den Listentasten von STEP 3 gebildete Set gespeichert ist (Standardeinstellung von 'Rapmedusa: sordedkeyset') - Cleanup - ein boolescher Wert, der angibt, ob die temporären Schlüssel (SortKey, SordeDkeyset) aus dem RediS-Shop gelöscht werden sollen Nach Abschluss des MAPREDUCE-Jobs (Standardeinstellung auf true) müssen Sie die Standardwerte für Sortierkäufer und SortierkeySet selten überschreiben, da ein Namenskonflikt sehr unwahrscheinlich ist. Sie möchten jedoch benutzerdefinierte Werte für Innere und Outkey angeben, die sich leichter angeben. der Rekordeinträge, Alter. >>> Import Redis >>> von Rapmedusa-Import * >>> conn = redis.strictredis (Host = 'localhost', port = 6379, db = 0) >>> conn.hset ('myinput', 1, "{ 'Name': 'chad', 'Alter': 43} ") >>> conn.hset ('myinput', 2," {'Name': 'Ron', 'Alter': 21} ") >>> conn.hset ('myinput', 3, "{'Name': 'George', 'Alter': 54}") >>> conn.hset ('myinput', 4, "{'Name': 'Alice' , 'Alter': 54} ") >>> def mymap (Schlüssel, Wert): obj = eval (Wert) emit (str (obj , '1') >>> Def MyREDUCE (Schlüssel, VALS): TOTAL = 0 für v in Vals: Total + = int (v) Rückkehr insgesamt >>> Ergebnis = Map_Reduce (CONNE, MYMAP, MYKEDUCE, INKEY = 'MYINPUT') >>> Drucken Ergebnis {'54': ' 2 ',' 21 ':' 1 ',' 43 ':' 1 '} Homepage des Produkts


Rapmedusa Zugehörige Software