4
respostas

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

Segui todo o passo a passo do vídeo porém quando chega nessa parte:

data = [('Zeca', '35'), ('Eva', '29')]
colNames = ['Nome', 'Idade']
df = spark.createDataFrame(data,colNames)
df

Ele retorna esse erro:

Traceback (most recent call last):
  File "/content/spark-3.1.2-bin-hadoop2.7/python/pyspark/serializers.py", line 437, in dumps
    return cloudpickle.dumps(obj, pickle_protocol)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/content/spark-3.1.2-bin-hadoop2.7/python/pyspark/cloudpickle/cloudpickle_fast.py", line 72, in dumps
    cp.dump(obj)
  File "/content/spark-3.1.2-bin-hadoop2.7/python/pyspark/cloudpickle/cloudpickle_fast.py", line 540, in dump
    return Pickler.dump(self, obj)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/content/spark-3.1.2-bin-hadoop2.7/python/pyspark/cloudpickle/cloudpickle_fast.py", line 630, in reducer_override
    return self._function_reduce(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/content/spark-3.1.2-bin-hadoop2.7/python/pyspark/cloudpickle/cloudpickle_fast.py", line 503, in _function_reduce
    return self._dynamic_function_reduce(obj)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/content/spark-3.1.2-bin-hadoop2.7/python/pyspark/cloudpickle/cloudpickle_fast.py", line 484, in _dynamic_function_reduce
    state = _function_getstate(func)
            ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/content/spark-3.1.2-bin-hadoop2.7/python/pyspark/cloudpickle/cloudpickle_fast.py", line 156, in _function_getstate
    f_globals_ref = _extract_code_globals(func.__code__)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/content/spark-3.1.2-bin-hadoop2.7/python/pyspark/cloudpickle/cloudpickle.py", line 236, in _extract_code_globals
    out_names = {names[oparg] for _, oparg in _walk_global_ops(co)}
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/content/spark-3.1.2-bin-hadoop2.7/python/pyspark/cloudpickle/cloudpickle.py", line 236, in <setcomp>
    out_names = {names[oparg] for _, oparg in _walk_global_ops(co)}
                 ~~~~~^^^^^^^
IndexError: tuple index out of range
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
/content/spark-3.1.2-bin-hadoop2.7/python/pyspark/serializers.py in dumps(self, obj)
    436         try:
--> 437             return cloudpickle.dumps(obj, pickle_protocol)
    438         except pickle.PickleError:

15 frames
IndexError: tuple index out of range

During handling of the above exception, another exception occurred:

PicklingError                             Traceback (most recent call last)
/content/spark-3.1.2-bin-hadoop2.7/python/pyspark/serializers.py in dumps(self, obj)
    445                 msg = "Could not serialize object: %s: %s" % (e.__class__.__name__, emsg)
    446             print_exec(sys.stderr)
--> 447             raise pickle.PicklingError(msg)
    448 
    449 

PicklingError: Could not serialize object: IndexError: tuple index out of range
4 respostas

Tentei abrir pelo Chrome e foi, porém no Opera GX continua sem funcionar.

Fui tentar rodar hoje de novo pelo chrome e voltou a dar o mesmo erro, alguém me ajdua por favor já não sei mais o que fazer.

Também estou com o mesmo problema.. Complicado demorarem tanto p responder visto o valor do curso não ser baixo

Oi Ayna,

Eu estava com o mesmo erro que você no Colab, e tentei várias maneiras de resolver, incluindo o downgrade da versão do Python, pois li em alguns fóruns que esse erro ocorre devido à incompatibilidade com a versão atual do Python. No entanto, não consegui fazer funcionar no Colab, apesar de tentar algumas soluções com a ajuda do ChatGPT e também buscando ajuda no StackOverflow.

Depois de passar dois dias tentando e sem sucesso, decidi rodar o projeto no VS Code. Configurei o ambiente para usar o Python 3.8 e instalei o JDK 8 na minha máquina. Também fiz algumas alterações no código, como apontar as variáveis para o caminho correto na minha máquina e instalei o ngrok localmente, como mostrado nesse guia Configuração do Ngrok para Windows. Assim, consegui gerar a public URL e agora estou conseguindo criar os DataFrames normalmente.

Eu sei que o curso está desatualizado e que as instruções não explicam direito como dar o downgrade no Colab ou até mesmo como configurar o ambiente corretamente. Isso acabou dificultando um pouco o processo. No meu caso, decidi seguir com o VS Code para não perder mais tempo tentando resolver o problema no Colab. No entanto, no futuro, talvez eu tente revisitar e rodar novamente pelo Colab.

Sugiro que o curso seja atualizado para explicar como lidar com essas incompatibilidades no Colab, incluindo orientações claras sobre o downgrade do Python e a configuração do ambiente. Isso ajudaria os alunos iniciantes a seguir o curso sem maiores dificuldades.