2
respostas

[Dúvida] Erro na criação do Dataframe

Estou tentando criar um o dataframe spark

from pyspark.sql import SparkSession

spark = SparkSession.builder\
    .master('local[*]')\
    .appName('CriarDf')\
    .getOrCreate()
    
data = [('Zeca', '35'), ('Eva', '29')]
colNames = ['Nome', 'Idade']
df = spark.createDataFrame(data, colNames)
df.show()

Mas está retornando o seguinte erro:

Py4JJavaError                             Traceback (most recent call last)
Cell In[8], line 11
      9 colNames = ['Nome', 'Idade']
     10 df = spark.createDataFrame(data, colNames)
---> 11 df.show()

File C:\Spark\spark-3.5.0-bin-hadoop3\python\pyspark\sql\dataframe.py:959, in DataFrame.show(self, n, truncate, vertical)
    953     raise PySparkTypeError(
    954         error_class="NOT_BOOL",
    955         message_parameters={"arg_name": "vertical", "arg_type": type(vertical).__name__},
    956     )
    958 if isinstance(truncate, bool) and truncate:
--> 959     print(self._jdf.showString(n, 20, vertical))
    960 else:
    961     try:

File C:\Spark\spark-3.5.0-bin-hadoop3\python\lib\py4j-0.10.9.7-src.zip\py4j\java_gateway.py:1322, in JavaMember.__call__(self, *args)
   1316 command = proto.CALL_COMMAND_NAME +\
   1317     self.command_header +\
   1318     args_command +\
   1319     proto.END_COMMAND_PART
   1321 answer = self.gateway_client.send_command(command)
-> 1322 return_value = get_return_value(
   1323     answer, self.gateway_client, self.target_id, self.name)
...
    at java.base/java.io.DataInputStream.readFully(DataInputStream.java:210)
    at java.base/java.io.DataInputStream.readInt(DataInputStream.java:385)
    at org.apache.spark.api.python.PythonRunner$$anon$3.read(PythonRunner.scala:774)
2 respostas

Oii, Aneliza, tudo bem?

O erro+ Py4JJavaError aparece quando há um problema de comunicação entre o Python e o Java, que é o que o PySpark usa para acessar as funcionalidades do Spark.

Uma das causas do erro pode ser a versão do Java. O Spark precisa ter o Java 8 ou 11 para funcionar. Pra checar a versão do Java no sistema, basta usar o comando java -version em um terminal. A partir daí é só você desinstalar e reinstalar com a outra versão, caso seja uma sem ser o 8 ou o 11.

Outra possibilidade é algum problema com a instalação do PySpark ou do próprio Spark. Pra lidar com esse erro, seria útil desinstalar e reinstalar essas ferramentas.

Você pode tentar desta forma:

pip uninstall pyspark
pip install pyspark

E para o Spark, você pode seguir as instruções de instalação disponíveis na página oficial do Spark.

Se outra dúvida surgir, estamos aqui!

Abraços! :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Olá, Aneliza, tudo bem?

Acrescentando a resposta da Maria, eu recomendo fortemente o uso do Google Colab para um maior aproveitamento do curso, pois será o mesmo ambiente utilizado pelo instrutor. Para configurar o Colab, basta seguir os passos desta aula.

Espero ter ajudado e fico à disposição.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!