rapmedusa

Python-implementatie van MAPREDUCE-zoekopdracht voor Redis
Download nu

rapmedusa Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • MIT/X Consortium Lic...
  • Prijs:
  • FREE
  • Naam uitgever:
  • Greg Leighton
  • Uitgever website:
  • http://github.com/gleighto/

rapmedusa Tags


rapmedusa Beschrijving

Rapmedusa is een Python-module om MapReduce-querying te implementeren over een redis-sleutelswinkel. Het is bedoeld om functionaliteit te bieden die vergelijkbaar is (in sommige opzichten) naar de bekeken van CouchDB) en MongoDB's MapRutce-database-commando.DependenciesRapmedusa is afhankelijk van Andy McCurdy's Redis-Py-module, die kan worden verkregen bij https://github.com/andymccurdy/redis- py. Natuurlijk heb je ook een REDIS-instantie nodig om verbinding met te maken. In beide gevallen moet elke versie> = 2.0 compatibel zijn met RAPMEDUSA.Installatie Sudo PIP Installeer Rapmedusaor Sudo Easy_Install Rapmedusaor van Source: Sudo Python Setup.py InstallOverViewFIRST, importeer de vereiste modules: >>> Import REDIS >>> van RAPMEDUSA Import Emit , MAP_REDUCENEXT, Sluit op de gebruikelijke manier aan op een lopende REDIS-instantie: >>> redis = redis.strivtredis (host = 'localhost', poort = 6379, db = 0) Ten slotte moeten implementaties van de kaart en verkleinen functies worden verstrekt, en doorgegeven in een oproep naar de functie MAP_REDULE (), samen met de actieve verbinding met de REDIS-server: >>> DEF MYMAP (KEY, VAL): ... EMIT (NEWKEY, NEWVAL) >>> DEF MYREUCE (SLUIT Waarden): ... Terugkeer NEWVAL >>> Resultaat = MAP_REDULE (Redis, MyMap, MyRreduce) Dit retourneert een Python Dictionary-object, met het resultaat van het uitvoeren van de MapReduce-taak. Elke toets binnen het woordenboek komt overeen met een sleutel die is doorgegeven in de functie die de functie vermindert en bevat de waarde die wordt berekend door de FUNCTION FUNCTION voor die key.Detailsnow Het is tijd om een dieper te kijken naar hoe Rapmedusa een MAPREDUSA-taak uitvoert. Er zijn in feite 6 stappen: - Lees de ingangsgegevens instellen van een opgegeven redis hash.- Pass elke toets / waardepaar van de ingangsgegevens ingesteld op de geregistreerde kaartfunctie.- Organiseer sleutel / value paren uitgezonden door de kaartfunctie in een set van Redis-lijsten, één lijst per duidelijke uitgezonden sleutel.- Elk van deze lijsten wordt doorgegeven aan de geregistreerde vermindering van de functie, samen met de bijbehorende toets.- Het resultaat van elke oproep om te verkleinen wordt opgeslagen in de REDIS HASH gereserveerd voor de functie van het werk, Onder de sleutel die wordt gebruikt in de verkleinende oproep .- Een Python-woordenboek die de inhoud vertegenwoordigt van de taakuitgang Hash wordt geretourneerd. Een natuurlijke vraag op dit punt is hoe de invoer- en uitvoerhak-sleutels zijn opgegeven? Deze (en andere tijdelijke redis-toetsen die in de bovenstaande stappen worden gebruikt) kunnen optioneel worden opgegeven binnen de oproep naar MAP_REDULE (). Hier is een lijst van de extra, optionele parameters die in de oproep kunnen worden gespecificeerd: - Inkey - geeft de sleutel aan waaronder de ingangsinstelling is opgeslagen (standaardwaarden naar 'RAPMEDUSA: INPUTS') - Outkey - Specificeert de sleutel waaronder De functie Output wordt opgeslagen (standaardwaarden naar 'Rapmedusa: Uitgangen') - Sortey - Specificeert het toetsvoorvoegsel waaronder de uitvoer van de kaartfunctie (stap 3 hierboven) wordt opgeslagen (standaardwaarden voor 'Rapmedusa: SortedVals') - Sortedekeyset - Geeft de sleutel aan waaronder de set die is gevormd uit de lijststoetsen van stap 3 is opgeslagen (standaardwaarden naar 'Rapmedusa: Sortedekeyset') - opruimen - een Booleaanse waarde die aangeeft of de tijdelijke toetsen (Sortey, Sortedekeyset) van de REDIS-winkel moeten worden verwijderd Na de voltooiing van de MAPREDUW-taak (standaardinstellingen naar true), moet u zelden de standaardwaarden voor sortekey en sortekeyset negeren, omdat een naamgevingsconflict hoogst onwaarschijnlijk is. U kunt echter aangepaste waarden opgeven voor INKEY en OUTKEY die gemakkelijker te onthouden zijn.ExplipesEXample 1: TELLENDE AGESTHIS-VOORBEELD Toont een MAPREDUW-taak waarin de invoertoetsen zijn toegewezen aan Person Records, en de kaartfunctie genereert sleutels op basis van één van de recordvermeldingen, leeftijd. >>> Import REDIS >>> van RAPMEDUSA import * >>> Conn = redis.strivtredis (host = 'localhost', poort = 6379, db = 0) >>> conn.hset ('myinput', 1, "{ 'Naam': 'Tsjaad', 'Leeftijd': 43} ") >>> Conn.hset ('Myinput', 2," {'naam': 'RON', 'LEEFTIJD': 21} ") >>> conn.hset ('myinput', 3, "{'naam': 'George', 'Leeftijd': 54}") >>> conn.hset ('Myinput', 4, "{'Name': 'Alice' , 'Leeftijd': 54} ") >>> DEF MYMAP (KEY, VALUE): OBJ = EVAL (VALUE) EMIT (STR (OBJ ), '1') >>> Def MyRreduce (Sleutel, Vals): Totaal = 0 voor V in Vals: Totaal + = INT (V) Return Total >>> Resultaat = Map_Reduce (Conn, MyMap, MyRreduce, Inkey = 'Myinput') >>> Print Resultaat {'54': ' 2 ',' 21 ':' 1 ',' 43 ':' 1 '} de startpagina van het product


rapmedusa Gerelateerde software