Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Junte-se a nós no Amazon Web Services re:Invent 2024! Saiba como usar o MongoDB para casos de uso de AI .
Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Idiomaschevron-right
Pythonchevron-right

Utilizando o PySpark para conectar o MongoDB Atlas com Azure Databricks

Anaiya Raisinghani6 min read • Published May 01, 2023 • Updated Apr 02, 2024
SparkMongoDBPython
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
O processamento de dados não é tarefa fácil, mas com as ferramentas adequadas, ele pode ser simplificado e permitir que você tome as melhores decisões possíveis baseadas em dados. Em um mundo repleto de dados, precisamos dos melhores métodos para obter as informações mais úteis.
A combinação do MongoDB Atlas com o Azure Databricks faz uma escolha eficiente para o processamento de big data. Ao conectar o Atlas ao Azure Databricks, podemos extrair dados de nosso Atlas cluster, processar e analisar os dados usando o PySparke, em seguida, armazenar os dados processados de volta em nosso Atlas cluster. O uso do Azure Databricks para analisar seus dados do Atlas permite o acesso à ampla gama de recursos de análise avançada do Databricks, que incluem aprendizado de máquina, ciência de dados e áreas de inteligência artificial, como processamento de linguagem natural! O processamento de seus dados do Atlas com essas ferramentas avançadas do Databricks nos permite lidar com qualquer quantidade de dados de forma eficiente e escalável, tornando mais fácil do que nunca obter insights sobre nossos conjuntos de dados e nos permite fazer a análise mais eficaz baseada em dados decisões.
Este tutorial mostrará como utilizar o PySpark para conectar o Atlas ao Databricks para que você possa aproveitar ambas as plataformas.
O MongoDB Atlas é uma solução de armazenamento escalável e flexível para seus dados, enquanto o Azure Databricks fornece o poder do Apache Spark para trabalhar com os recursos de segurança e colaboração disponíveis com uma assinatura do Microsoft Azure. Apache Spark fornece a interface Python para trabalhar com o Spark, PySpark, que permite uma interface fácil de usar para desenvolver no Python. Para conectar corretamente o PySpark ao MongoDB Atlas, o Spark Connector é utilizado. Este connector garante compatibilidade perfeita, como você verá abaixo no tutorial.
Texto alternativo: diagrama técnico mostrando como o Atlas, PySpark, o MongoDB Spark Connector e o Azure Databricks são integrados
Nosso tutorial para combinar as plataformas acima consistirá em visualizar e manipular um cluster do Atlas e visualizar nossos dados do cluster de volta em nosso console do PySpark. Configuraremos os clusters do Atlas e do Azure Databricks, conectaremos nosso cluster do Databricks ao nosso IDE e escreveremos scripts para exibir e contribuir para o cluster em nossa conta do Atlas. Vamos começar!

Requisitos

Para recriar esse projeto com sucesso, certifique-se de que você tenha todos os itens da lista a seguir:

Configurando um cluster do MongoDB Atlas

Nossa primeira etapa é configurar um cluster do MongoDB Atlas. Acesse a UI do Atlas e siga estas etapas. Para este tutorial, um cluster “shared gratuito é completo. Crie um banco de dados e nomeie-o como "bookshelf " com uma coleção dentro chamada "books. Para garantir a facilidade deste tutorial, permita uma conexão de qualquer lugar dentro dos valores de rede do seu cluster.
Depois de provisionado corretamente, seu cluster terá a seguinte aparência: Texto alternativo: configuração inicial do nosso Atlas cluster
Agora podemos configurar nosso cluster do Azure Databricks.

Configurar um cluster do Azure Databhards

Acesse a páginaAzure Databricks, entre e acesse a guia Azure Databricks. É aqui que você criará um espaço de trabalho do Azure Databricks.
Texto alternativo: a configuração do nosso espaço de trabalho do Azure Databricks
Para nosso cluster Databricks, uma avaliação gratuita funciona perfeitamente para este tutorial. Depois que o cluster for provisionado, você só terá duas semanas para acessá-lo antes de precisar fazer a atualização.
Clique em “Review and Create” na parte inferior. Depois que seu espaço de trabalho for validado, clique em "Create." Quando sua implantação estiver concluída, clique em "Go to Resource." Você será levado para a visão geral do seu espaço de trabalho. Clique em “Launch Workspace” no meio da página.
Isso o direcionará para a interface do usuário do Microsoft Azure Databricks, onde podemos criar o cluster do Databricks. No lado esquerdo da tela, clique em "Create a Cluster," e depois clique em "Create Compute" para acessar o formulário correto.
Texto alternativo: a configuração do nosso cluster do Azure Databricks
Ao criar seu cluster, preste muita atenção ao que é seu “Databricks runtime version”. Continue pelas etapas para criar seu cluster.
Agora vamos instalar as bibliotecas necessárias para nos conectar ao nosso cluster MongoDB Atlas. Vá para a aba "Libraries " do seu cluster, clique em "Install New, " e selecione "Maven. " Pressione "Search Packages " ao lado de "Coordinates. " Pesquise por mongo e selecione o pacote mongo-spark . Faça o mesmo comxml e selecione o pacotespark-xml . Quando terminar, a aba da sua biblioteca ficará assim: Texto alternativo: bibliotecas a serem instaladas em seu cluster do Databricks

Utilizando o Databricks-Connect

Agora que temos nosso cluster Azure Databricks pronto, precisamos conectá-lo corretamente ao nosso IDE. Podemos fazer isso por meio de uma configuração muito útil chamada Databricks Connect. O Databricks Connect permite que os clusters do Azure Databricks se conectem perfeitamente ao IDE de sua escolha.

Fundamentos de configuração do Databricks

Antes de estabelecermos nossa conexão, vamos verificar se temos os fundamentos da configuração. Isso está disponível no tutorial do Databricks Connect no site da Microsoft em “Step 2: Configure connection properties.. Anote essas propriedades em um local seguro, pois você não poderá se conectar corretamente sem elas.

Configuração do Databricks-Connect

Acesse a página do Databricks Connect vinculada acima para configurar corretamente o databricks-connect em seu computador. Certifique-se de baixar a versãodatabricks-connect que é compatível com sua versão do Python e é igual à versão de tempo de execução do Databricks em seu cluster do Azure.
Antes da instalação, certifique-se de que você está trabalhando com um ambiente virtual para esse projeto. A não utilização de um ambiente virtual pode causar conflitos de pacotes PySpark em seu console.
Etapas do ambiente virtual no Python:
1python3 -m venv name
Onde name é o nome do seu ambiente, portanto, você pode chamá-lo de qualquer coisa.
Nosso segundo passo é ativar nosso ambiente virtual:
1source name/bin/activate
E é isso. Agora estamos em nosso ambiente virtual Python. Você pode ver que está nele quando o pequeno (nome) ou o nome que você deu a ele aparece.
Para nosso projeto, use este comando de instalação:
1pip install -U “databricks-connect==10.4.*”
Depois de totalmente baixado, precisamos definir a configuração do cluster. Use o comando configure e siga as instruções. É aqui que você inserirá os fundamentos da configuração em nossa seção “Databricks configuration essentials”.
Depois de terminar, use este comando para verificar se você está conectado ao seu cluster:
1databricks-connect test
Você saberá que está configurado corretamente ao ver um “All tests passed” em seu console. Agora, é hora de configurar nossas SparkSessions e conectá-las ao nosso cluster Atlas.

Configuração do SparkSession + Atlas

A criação de um objeto SparkSession é crucial para nosso tutorial porque fornece uma maneira de acessar todos os recursos importantes do PySpark em um só lugar. Esses recursos incluem: ler dados, criar estruturas de dados e gerenciar a configuração geral dos aplicativos PySpark. Nossa SparkSession nos permitirá ler e escrever em nosso Atlas cluster por meio dos conjuntos de dados que criamos.
O código completo está em nossa conta doGithub, então acesse-o lá se quiser replicar este tutorial exato. Analisaremos o código apenas para alguns dos fundamentos do tutorial abaixo.
Este é o objeto SparkSession que precisamos incluir. Vamos usar uma estrutura básica em que descrevemos o nome do aplicativo, configuramos nossos conectores " "read e " "write para o nosso (nossa connection connection_stringstring do cluster MongoDB que salvamos com segurança como uma variável de ambiente) e configure nosso mongo-spark-connector. Certifique-se de usar o correto mongo-spark-connector para seu ambiente. Para o nosso, é a versão 10.0.3. Dependendo da sua versão do Python, a mongo-spark-connector versão pode ser diferente. Para descobrir qual versão é compatível com seu ambiente, consulte os documentos do Repositório MVN.
1# use environment variable for uri
2load_dotenv()
3connection_string: str = os.environ.get("CONNECTION_STRING")
4
5# Create a SparkSession. Ensure you have the mongo-spark-connector included.
6my_spark = SparkSession \
7 .builder \
8 .appName("tutorial") \
9 .config("spark.mongodb.read.connection.uri", connection_string) \
10 .config("spark.mongodb.write.connection.uri", connection_string) \
11 .config("spark.jars.packages", "org.mongodb.spark:mongo-spark-connector:10.0.3") \
12 .getOrCreate()
Para obter mais ajuda sobre como criar um objeto SparkSession com MongoDB e para obter mais detalhes sobre mongo-spark-connector, consulte a documentação.
Nossa próxima etapa é criar dois quadros de dados, um para write um livro para o nosso cluster do Atlas e um segundo para read retornar todos os livros em nosso cluster. Esses quadros de dados são essenciais; certifique-se de usar o formato adequado ou eles não se conectarão corretamente ao seu cluster.
1add_books = my_spark \
2 .createDataFrame([("<title>", "<author>", <year>)], ["title", "author", "year"])
3
4add_books.write \
5 .format("com.mongodb.spark.sql.DefaultSource") \
6 .option('uri', connection_string) \
7 .option('database', 'bookshelf') \
8 .option('collection', 'books') \
9 .mode("append") \
10 .save()
Quadro de dados para read de volta aos nossos livros:
1# Create a data frame so you can read in your books from your bookshelf.
2return_books = my_spark.read.format("com.mongodb.spark.sql.DefaultSource") \
3 .option('uri', connection_string) \
4 .option('database', 'bookshelf') \
5 .option('collection', 'books') \
6 .load()
7
8# Show the books in your PySpark shell.
9return_books.show()
Adicione no livro de sua escolha no dataframe add_books . Aqui, troque o título, o autor e o ano para as áreas com os colchetes< > . Depois de adicionar seu livro e executar o arquivo, você verá que os registros estão nos informando que estamos nos conectando corretamente e que podemos ver os livros adicionados em nosso shell do PySpark. Este script de demonstração foi executado seis vezes separadas para adicionar seis livros diferentes. Uma imagem do console está abaixo:
Texto alternativo: lista de livros do nosso cluster Atlas mostrado em nosso shell PySpark
Podemos verificar duas vezes nosso cluster no Atlas para garantir que eles correspondam: Texto alternativo: lista de livros em nosso cluster Atlas mostrado em nossa conta Atlas

Conclusão

Parabéns! Conectamos com êxito nosso cluster do MongoDB Atlas ao Azure Databricks por meio do PySpark e podemos read e write dados diretamente para nosso cluster do Atlas.
As habilidades que você aprenderam com este tutorial permitirão que você utilize a solução de armazenamento escalável e flexível do Atlas enquanto aproveita os recursos de análise avançada do Azure Databricks. Essa combinação pode permitir que os desenvolvedores lide com qualquer quantidade de dados de maneira eficiente e escalável, ao mesmo tempo em que obtém insights sobre conjuntos de dados complexos para tomar decisões interessantes baseadas em dados!
Dúvidas? Comentários? Vamos continuar a conversa na comunidade de desenvolvedores do MongoDB!

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Filtragem inteligente: um guia para gerar pré-filtros para pesquisa semântica do Atlas


Oct 02, 2024 | 20 min read
Início rápido

Construindo pipelines RAG com haystack e MongoDB Atlas


Sep 18, 2024 | 4 min read
Tutorial

Como usar os módulos de incorporações e reclassificação do Cohere com o MongoDB Atlas


Aug 14, 2024 | 10 min read
Tutorial

Como configurar o mecanismo de segredos KMIP do HashiCorp Vault com MongoDB CSFLE ou Queryable Encryption


Nov 14, 2022 | 10 min read
Sumário