não consegui encontrar como fazer importação
ATÉ 50% OFF
TÁ ACABANDO!
0 dias
0 horas
0 min
0 seg
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 pysparkApó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' objectGrata pela atenção!