Utilizando o PySpark para conectar o MongoDB Atlas com Azure Databricks
Avalie esse Tutorial
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.
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!
Para recriar esse projeto com sucesso, certifique-se de que você tenha todos os itens da lista a seguir:
- Assinatura do Microsoft Azure(avaliação gratuita de duas semanas).
- Python 3.8+.
- Java na sua máquina local.
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:
Agora podemos configurar nosso cluster do Azure Databricks.
Acesse a páginaAzure Databricks, entre e acesse a guia Azure Databricks. É aqui que você criará um 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.
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: 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.
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.
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:
1 python3 -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:
1 source 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:
1 pip 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:
1 databricks-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.
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_string
string 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 2 load_dotenv() 3 connection_string: str = os.environ.get("CONNECTION_STRING") 4 5 # Create a SparkSession. Ensure you have the mongo-spark-connector included. 6 my_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.Quadro de dados para
write
um livro:1 add_books = my_spark \ 2 .createDataFrame([("<title>", "<author>", <year>)], ["title", "author", "year"]) 3 4 add_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. 2 return_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. 9 return_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:Podemos verificar duas vezes nosso cluster no Atlas para garantir que eles correspondam:
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!