Spark Data Frames – Verifica si la columna es de tipo entero

Estoy tratando de averiguar qué tipo de datos es mi columna en un dataframe de chispa y manipular la columna en función de esa reducción.

Aquí está lo que tengo hasta ahora:

import pyspark from pyspark.sql import SparkSession spark = SparkSession.builder.appName('MyApp').getOrCreate() df = spark.read.csv('Path To csv File',inferSchema=True,header=True) for x in df.columns: if type(x) == 'integer': print(x+": inside if loop") 

La instrucción print(x+": inside if loop") nunca se ejecuta, pero estoy seguro de que hay varias columnas que son de tipo entero. ¿Que me estoy perdiendo aqui?

Estás iterando sobre los nombres de tus columnas, por lo que type(x) nunca será igual a “entero” (siempre es una cadena).

pyspark.sql.DataFrame.dtypes utilizar pyspark.sql.DataFrame.dtypes

 for x, t in df.dtypes: if t=="int": print("{col} is integer type".format(col=x)) 

También puede ser útil mirar el esquema usando df.printSchema() .

Tratar:

 if type(x) == int: 

type (x) no devuelve ‘enteros’, deben devolver int para enteros.