Os passos apresentados na aula e no vídeo não estavam solucionando o meu problema.
Depois de consultar vários apontamentos aqui no fórum e realizar vários testes, encontrei uma explicação que finalmente conseguiu corrigir meu problema. Vou apresentar abaixo os códigos executados e uma breve explicação, afim de que mais pessoas evitem de perder o tempo de estudo resolvendo esses problemas.
Obs: unifiquei aqui os apontamentos feitos nos seguintes links:
- https://cursos.alura.com.br/forum/topico-sugestao-iniciando-o-spark-460081
- https://cursos.alura.com.br/forum/topico-chamada-api-nao-retorna-link-397177
Antes de prosseguir reinicie o ambiente de execução do Google Colab. Você pode reiniciar o ambiente de execução clicando na barra de ferramentas localizada na parte superior da tela e em "Ambiente de execução" selecionar a opção "Reiniciar o ambiente de execução".
A seguir o código que você deverá executar em cada célula separadamente:
1
# instalar as dependências
!apt-get update -qq
!apt-get install openjdk-8-jdk-headless -qq > /dev/null
!wget -q https://archive.apache.org/dist/spark/spark-3.1.2/spark-3.1.2-bin-hadoop2.7.tgz
!tar xf spark-3.1.2-bin-hadoop2.7.tgz
!pip install -q findspark
2
import os
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-3.1.2-bin-hadoop2.7"
3
import findspark
findspark.init()
4
from pyspark.sql import SparkSession
spark = SparkSession.builder \
.master('local[*]') \
.appName("Iniciando com Spark") \
.config('spark.ui.port', '4050') \
.getOrCreate()
5
!wget -q https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
!unzip ngrok-stable-linux-amd64.zip
6
!pip install pyngrok
from pyngrok import ngrok
7
!ngrok authtoken SEU_TOKEN_AQUI_ENTRE_ASPAS_DUPLAS
8
ngrok.connect('4050')
9 (opcional apenas para verificar o CURL funcionando)
!curl -s http://localhost:4040/api/tunnels
De forma resumida, foram executadas as seguintes etapas:
- Instalação dependências como o Java 8 e o Spark.
- Configuração das variáveis de ambiente para apontar o Java e o Spark.
- É inicializado uma sessão do PySpark (Spark com interface Python).
- Depois, faz o download e a configuração do ngrok para expor a interface web do Spark em uma URL pública.
- Conecta o ngrok à porta onde a interface web do Spark estará disponível.