0
respostas

[Dúvida] Join dos datasets 'unit' e 'zone' no dataset principal.

unit = dataset\
    .groupBy("customerID")\
    .pivot('unit')\
    .agg(f.lit(1))\
    .na\
    .fill(0)
zone = dataset\
    .groupBy('customerID')\
    .pivot('zone')\
    .agg(f.lit(1))\
    .na\
    .fill(0)

Quando não uso, no final destes métodos o método ".show()", eles rodam normalmente. Mas, quando coloco o método .show() no final destes dois datasets, dá erro. Porque?

exemplo:

unit = dataset\
    .groupBy("customerID")\
    .pivot('unit')\
    .agg(f.lit(1))\
    .na\
    .fill(0)\
    .show()

ao rodar o código abaixo:

dataset = dataset\
    .join(unit, 'customerID', how='inner')\
    .join(zone, 'customerID', how='inner')

Veja o erro abaixo:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-80-b5899ff199c5> in <module>
----> 1 dataset = dataset\
      2     .join(unit, 'customerID', how='inner')\
      3     .join(zone, 'customerID', how='inner')

/usr/local/lib/python3.8/dist-packages/pyspark/sql/dataframe.py in join(self, other, on, how)
   1537                 on = self._jseq([])
   1538             assert isinstance(how, str), "how should be a string"
-> 1539             jdf = self._jdf.join(other._jdf, on, how)
   1540         return DataFrame(jdf, self.sparkSession)
   1541