não consegui encontrar como fazer importação
não consegui encontrar como fazer importação
Olá, Tabata! Tudo bem com você?
Desculpa pela demora em dar um retorno.
Encontrei duas abordagens para fazer essa importação. A primeira consiste primeiramente em criar um DataFrame do Pandas e então passar isso para o Spark da seguinte forma:
import pandas as pd
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("excel").getOrCreate()
df = pd.read_excel("Pasta de trabalho 1.xlsx") # lendo o arquivo xlsx para o pandas
sdf = spark.createDataFrame(df) # criando um dataframe do spark
sdf.show()
Saída:
+---+---+
| A| B|
+---+---+
|1.1|2.2|
|3.3| C|
+---+---+
A outra forma é já usar o Spark para ler esses arquivos com o Pandas. Mas como assim?
Na versão Apache Spark™ 3.2 já vem a API do Pandas integrada, que fornece algumas vantagens em relação ao Pandas nativo, como pode ser consultado no artigo do Databricks "Pandas API on Upcoming Apache Spark™ 3.2".
Para isso você deve garantir que está utilizando uma versão do Pyspark maior ou igual a 3.2. Para fazer isso execute o seguinte comando em uma célula do seu notebook:
!pip install -U pyspark
Após a instalação ter sido concluída, reinicie seu kernel da seguinte forma:
Caso utilize o colab:
Caso utilize o jupyter:
Após reiniciar o kernel execute o código abaixo:
import pyspark.pandas as ps
print(ps.read_excel("Pasta de trabalho 1.xlsx").to_markdown())
Lembrar de trocar "Pasta de trabalho 1.xlsx" pelo nome do seu arquivo.
Saída:
A | B | |
---|---|---|
0 | 1.1 | 2.2 |
1 | 3.3 | C |
Como recomendação de leitura complementar deixo a documentação da Pandas API on Spark.
Qualquer dúvida estou à disposição.
Boa tarde, Bruno
Ambas as formas deram erro,
primeira forma e erro:
TypeError: field City: Can not merge type <class 'pyspark.sql.types.StringType'> and <class 'pyspark.sql.types.LongType'>
segunda forma e erro:
Expected bytes, got a 'int' object
Grata pela atenção!