Comment convertir une colonne de type chaîne de caractères int forme dans pyspark bloc de données?
J'ai dataframe dans pyspark. Certains de ses numérique colonnes contiennent des " nan " alors, quand je suis à la lecture des données et de vérification pour le schéma de dataframe, ces colonnes ont 'string' type. Comment je peux changer le type int.J'ai remplacé le 'nan' valeurs 0 et à nouveau vérifié le schéma, mais ensuite, c'est aussi montrer le type de chaîne pour ces colonnes.Je suis le code ci-dessous:
data_df = sqlContext.read.format("csv").load('data.csv',header=True, inferSchema="true")
data_df.printSchema()
data_df = data_df.fillna(0)
data_df.printSchema()
mes données ressemble à ceci:
ici colonnes "Joue" et "brouillons" contenant des valeurs entières, mais en raison de nan présents dans ces colonnes,ils sont traités comme type de chaîne.
- jetez un oeil à stackoverflow.com/questions/32284620/...
- Est-il un moyen par lequel, lors de la lecture des données que nous pouvons remplacer le nan alors que dans le schéma de ces colonnes seront traités comme le type int.
- vous aurez à faire l'ensemble de la colonne à un nombre entier dans votre cas, je crois.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez exécuter la boucle pour chaque colonne, mais c'est la façon la plus simple de convertir colonne de chaîne en entier.
Vous pouvez utiliser
cast
(comme int) après le remplacement deNaN
avec0
,Une autre façon de le faire est d'utiliser le StructField si vous avez plusieurs champs qui doit être modifié.
Ex:
De sortie:
Avant
Après:
C'est un peu une longue procédure à jeter , mais l'avantage est que tous les champs requis peut être fait.
Il est à noter que si seulement les champs obligatoires sont attribué le type de données, alors la résultante dataframe contiendra uniquement les champs qui sont modifiés.