MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Carregar dados do Spark no Mongo / Memcached para uso por um Webservice


Você não pode consultar um RDD diretamente dessa maneira. Pense no seu trabalho do Spark como um processador de fluxo. O que você pode fazer é enviar o modelo atualizado para algum "armazenamento", como um banco de dados (com uma API personalizada ou JDBC), um sistema de arquivos ou memcached. Você pode até fazer uma chamada de serviço da Web de dentro do código Spark.

Faça o que fizer, tome cuidado para que o tempo de processamento de cada lote de dados, incluindo E/S, esteja bem abaixo do intervalo de tempo especificado. Caso contrário, você corre o risco de gargalos que podem eventualmente falhar.

Uma outra coisa a observar é o caso em que você tem seus dados de modelo em mais de uma partição RDD espalhada pelo cluster (que é o padrão, é claro). Se a ordem de seus "registros" não importa, então escrevê-los em paralelo é bom. Se você precisar de um pedido total específico escrito sequencialmente (e os dados realmente não forem grandes), chame collect para trazê-los para uma estrutura de dados na memória dentro do código do driver (o que significará tráfego de rede em um trabalho distribuído) e, em seguida, escreva a partir daí.