Como alterar struct dataType para Integer em pyspark?
Aug 27 2020
Eu tenho um dataframe df e uma coluna tem um tipo de dados destruct<long:bigint, string:string>
devido a esta estrutura de tipo de dados, não consigo realizar adição, subtração etc ...
como mudar struct<long:bigint, string:string>para apenas IntegerType??
Respostas
werner Aug 28 2020 at 17:32
Você pode usar uma sintaxe de ponto para acessar partes da coluna struct.
Por exemplo, se você começar com este dataframe
df = spark.createDataFrame([(1,(3,'x')),(4,(8, 'y'))]).toDF("col1", "col2")
df.show()
df.printSchema()
+----+------+
|col1| col2|
+----+------+
| 1|[3, x]|
| 4|[8, y]|
+----+------+
root
|-- col1: long (nullable = true)
|-- col2: struct (nullable = true)
| |-- _1: long (nullable = true)
| |-- _2: string (nullable = true)
use pode selecionar a primeira parte da coluna de estrutura e criar uma nova coluna ou substituir uma existente:
df.withColumn('col2', df['col2._1']).show()
estampas
+----+----+
|col1|col2|
+----+----+
| 1| 3|
| 4| 8|
+----+----+
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas