Este projeto realiza a análise de dados históricos da cotação do Bitcoin usando Apache Spark no Databricks. Os dados de cotação incluem registros OHLC (Open, High, Low, Close) e volume de transações em BTC e USD. A análise inclui o cálculo do preço médio ponderado diário, conversão de timestamps Unix para datas legíveis e visualização dos resultados.
- Conta no Databricks;
- Dataset dos dados históricos do Bitcoin no formato CSV;
- Python, PySpark e Spark DataFrames
- Acesse o site Databricks e crie uma conta gratuita.
- Acesse o painel de controle do Databricks após a criação da conta.
- No painel esquerdo, clique em Clusters.
- Clique em Create Cluster.
- Dê um nome ao seu cluster (por exemplo,
bitcoin-cluster). - Selecione uma versão do Spark (por exemplo,
3.0ou superior). - Clique em Create Cluster e aguarde a inicialização.
- No painel esquerdo, clique em Data.
- Clique em Create Table e selecione Upload File.
- Carregue o arquivo CSV contendo os dados históricos do Bitcoin (por exemplo,
bitcoin_data.csv). - Aguarde o upload do arquivo e copie o caminho gerado para ser usado no código.
- No painel esquerdo, clique em Workspace.
- Selecione Create > Notebook.
- Dê um nome ao seu notebook (por exemplo,
BitcoinAnalysis), selecione Python como linguagem e associe o cluster criado. - No notebook, cole o seguinte código PySpark para carregar, processar e analisar os dados do Bitcoin:
# Criação da sessão Spark
spark = SparkSession.builder.appName('BitcoinAnalysis').getOrCreate()
# Caminho para o dataset CSV (substitua pelo caminho correto gerado pelo upload)
file_path = "/FileStore/tables/bitcoin_data.csv"
# Carregar os dados do Bitcoin no DataFrame
df = spark.read.csv(file_path, header=True, inferSchema=True)
# Exibir o esquema do dataset
df.printSchema()
# Limpeza de dados: Remover NaNs
df_cleaned = df.na.drop()
# Conversão de timestamp Unix para uma data legível
df_cleaned = df_cleaned.withColumn('date', from_unixtime(col('Timestamp')).cast('date'))
# Agrupar os dados por data e calcular o preço médio ponderado diário
df_daily_avg = df_cleaned.groupBy('date').agg(avg('Weighted_Price').alias('Daily_Avg_Price'))
# Ordenar por data
df_daily_avg = df_daily_avg.orderBy('date')
# Mostrar os primeiros 10 resultados
df_daily_avg.show(10)- Execute o código clicando no botão Run ou pressionando
Shift + Enter.
Se desejar salvar os resultados em um novo arquivo CSV, adicione o seguinte código no final do notebook:
# Salvar os resultados em um novo arquivo CSV
output_path = "/FileStore/tables/bitcoin_daily_avg.csv"
df_daily_avg.write.csv(output_path, header=True)Agora, você pode acessar os resultados na seção Data do Databricks, navegando até o diretório /FileStore/tables/.
Para criar um gráfico do preço médio diário do Bitcoin, adicione o seguinte código ao seu notebook:
# Importar bibliotecas de visualização
import matplotlib.pyplot as plt
import pandas as pd
# Converter o DataFrame Spark para um DataFrame Pandas
df_pandas = df_daily_avg.toPandas()
# Criar o gráfico de preço médio diário
plt.figure(figsize=(10,6))
plt.plot(df_pandas['date'], df_pandas['Daily_Avg_Price'], color='blue', label='Preço Médio Diário')
plt.xlabel('Data')
plt.ylabel('Preço Médio ($)')
plt.title('Preço Médio Diário do Bitcoin')
plt.xticks(rotation=45)
plt.grid(True)
plt.show()- No painel do Databricks, vá para User Settings (Configurações do Usuário).
- Na aba Git Integration, selecione GitHub.
- Gere um token de acesso pessoal no GitHub e insira o token no Databricks para conectar as duas plataformas.
- Agora, você pode salvar o notebook no GitHub.
- No seu notebook do Databricks, clique em File > Revision History.
- Selecione Git > Link to Git.
- Configure o repositório GitHub ao qual você deseja conectar.
- Depois de conectado, você pode commit o notebook diretamente para o repositório do GitHub.
Você pode agendar a execução automática de notebooks periodicamente:
- No Databricks, vá para Jobs no painel esquerdo.
- Crie um novo job e selecione o notebook que você deseja executar.
- Defina a periodicidade (por exemplo, diariamente, semanalmente) e clique em Create.
bitcoin_data.csv: Arquivo de dados históricos do Bitcoin.BitcoinAnalysis.ipynb: Notebook com o código de análise de dados.README.md: Este arquivo, explicando as etapas de execução no Databricks.
Este projeto demonstra como utilizar Databricks e PySpark para analisar dados históricos da cotação do Bitcoin, realizar o processamento e visualização dos dados, e integrar o trabalho com o GitHub.