Pessoal, postando aqui antes que eu esqueça
Caso alguém estiver tentando realizar a leitura de arquivos entre o módulo (Carregamento de dados) e (Manipulando dados) e o Jupyter Notebook nunca parar de executar, tenho uma solução aqui embaixo. A solução de ler todos os arquivos de uma vez do Google Colab não funciona sem realizar iterações no Jupyter Notebook, fiz duas soluções abaixo (ai podem testar) a que funciona melhor e se tiverem interesse!
- Solução 1: É a forma mais tradicional.
%%time
# Caminho para caso o diretório que contém os arquivos estejam em algum local do (D:), diferente do acima
# Realiza a contagem de registros do arquivo
# Essa é a maneira para carregar os dados de (empresas) do jeito mais tradicional
import glob
from pyspark.sql import SparkSession
# Caminho do diretório e padrão de nome dos arquivos
path = 'D:/Archives/tests-tables/gov-open-data/empresas/*.csv'
# Listar todos os caminhos dos arquivos CSV no diretório
file_paths = glob.glob(path)
# Inicializar uma lista para armazenar os DataFrames
dfs = []
# Ler cada arquivo CSV em um DataFrame e adicionar à lista dfs
for file in file_paths:
df = spark.read.csv(file, sep=';', inferSchema=True)
dfs.append(df)
# Unir todos os DataFrames em um único DataFrame
empresas = None
for df in dfs:
if empresas is None:
empresas = df
else:
empresas = empresas.union(df)
# Contar o número total de linhas
total_linhas = empresas.count()
print(f"Total de linhas lidas: {total_linhas}")
- Solução 2: É a forma mais simplificada.
%%time
# Caminho para caso o diretório que contém os arquivos estejam em algum local do (D:), diferente do acima
# Realiza a contagem de registros do arquivo
# Essa é a maneira para carregar os dados de (empresas) do jeito mais simplificado
import glob
from functools import reduce
# Caminho do diretório e padrão de nome dos arquivos
path = 'D:/Archives/tests-tables/gov-open-data/empresas/*.csv'
arquivos = glob.glob(path)
# Ler cada arquivo CSV em um DataFrame e armazenar na lista dfs
dfs = [spark.read.csv(file, sep=';', inferSchema=True) for file in arquivos]
# Unir todos os DataFrames em um único DataFrame
empresas = reduce(lambda df1, df2: df1.union(df2), dfs)
print(f'Total de linhas lidas: ', empresas.count())
Valeuu