rapmedusa.

Implementação Python de MapReduce Consultando para Redis
Baixe Agora

rapmedusa. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • MIT/X Consortium Lic...
  • Preço:
  • FREE
  • Nome do editor:
  • Greg Leighton
  • Site do editor:
  • http://github.com/gleighto/

rapmedusa. Tag


rapmedusa. Descrição

Rapmedusa é um módulo Python para implementar o MapReduce consultando sobre uma loja de valor chave do Redis. Tem como objetivo fornecer funcionalidade semelhante (em alguns aspectos) para o recurso de visualizações do CouchDB e o comando de banco de dados do MapReduce do MongoDB.DependinsApmedusa depende do módulo redis-py de Andy McCurdy, que pode ser obtido a partir de https://github.com/andymccurdy/redis- py. Claro, você também precisará de uma instância de Redis em execução para se conectar. Em ambos os casos, qualquer versão> = 2.0 deve ser compatível com o rapmedusa.installation sudo pip Install RapmedUSAOR SUDO EASY_INSTALL RAPMEDUSAOR A partir de Fonte: Sudo Python Setup.py InstalloverViewFirst, Importe os módulos necessários: >>> Import Redis >>> da Importação do Rapmedusa , MAP_REDUCEXTEXT, conectar a uma instância de Redis em execução da maneira usual: >>> redis = redis.strictredis (host = 'localhost', port = 6379, db = 0) Finalmente, implementações do mapa e reduzem as funções devem ser fornecidas, e passou para uma chamada para a função MAP_REDURUE (), juntamente com a conexão ativa para o servidor Redis: >>> def mymap (chave, val): ... emit (newkey, newVal) >>> def myReduce (chave, Valores): ... Retorna NewVal >>> Result = Map_Reduce (Redis, Mymap, MyReduce) Isso retorna um objeto de dicionário de Python, contendo o resultado de executar o trabalho de MapReduce. Cada tecla dentro do dicionário corresponde a uma chave passada na função Reduzir e contém o valor calculado pela função Reduzir para essa chave.Detailsnow É hora de dar uma olhada mais profunda em como Rapmedusa realiza um trabalho de MapReduce. Existem basicamente 6 etapas: - Leia o conjunto de dados de entrada de um redis hash especificado. Passe cada par chave / valor a partir do conjunto de dados de entrada para a função do mapa registrado. - Organize os pares chave / valor emitido pela função do mapa em um conjunto das listas redis, uma lista por chave emitida distinta. Cada uma dessas listas é passada para a função Redução registrada, juntamente com a chave correspondente. - O resultado de cada chamada para redução é armazenado no Redis Hash Reserve para a saída do trabalho, Sob a chave usada na chamada Reduzir.- Um dicionário Python que representa o conteúdo do trabalho de saída do trabalho é retornado. Uma pergunta natural neste ponto é como as teclas de hash de entrada e saída são especificadas? Estas (e outras teclas de redis temporárias usadas nas etapas acima) podem opcionalmente ser especificadas dentro da chamada para Map_Reduce (). Aqui está uma lista dos parâmetros adicionais e opcionais que podem ser especificados na chamada: - INKEY - especifica a chave em que o conjunto de dados de entrada é armazenado (padrões para 'RapMedusa: Entradas') - OutKey - Especifica a chave sob a qual A saída do trabalho é armazenada (padrões para 'RapMedusa: Saídas') - Sortkey - Especifica o prefixo-chave sob o qual a saída da função do mapa (etapa 3 acima) é armazenada (padrões para 'RapMedusa: SortedVals' - Especifica a chave sob a qual o conjunto formado a partir das chaves da lista da etapa 3 é armazenado (padrões para 'RapMedusa: SortedkeySet') - Limpeza - Um valor booleano indicando se as teclas temporárias (sortkey, sortykeyset) devem ser excluídas da loja Redis Após a conclusão do trabalho de MapReduce (padrões como verdadeiros), você raramente precisará substituir os valores padrão para ClasseDKey e SortedkeySet, como um conflito de nomeação é altamente improvável. Você pode, no entanto, desejar especificar valores personalizados para a INKEY e OUKKEY que são mais fáceis de lembrar.ExamplesExample 1: O exemplo da AGESTHIS demonstra um trabalho de MapReduce no qual as teclas de entrada são mapeadas para registros pessoais, e a função do mapa gera chaves baseadas em um das entradas de registro, idade. >>> Import Redis >>> da Importação RapMedusa * >>> conn = redis.strictredis (host = 'localhost', port = 6379, db = 0) >>> conn.hSet ('myInput', 1, "{ 'Nome': 'Chade', 'Idade': 43} ") >>> conn.hset ('myInput', 2," {'Nome': 'Ron', 'Idade': 21} ") >>> conn.hset ('myInput', 3, "{'nome': 'George', 'Idade': 54}") >>> conn.hset ('myInput', 4, "{'nome': 'Alice' 'Idade': 54} ") >>> def mymap (chave, valor): obj = eval (valor) emit (str (obj ), '1') >>> def myReduce (chave, vals): total = 0 para v em vals: total + = int (v) retorno total >>> resultado = map_educe (conn, mymap, myReduce, inkey = 'myInput') >>> impressão de impressão {'54': ' 2 ',' 21 ':' 1 ',' 43 ':' 1 '} página da página do produto


rapmedusa. Software Relacionado