Comment calculer la date de différence dans pyspark?
J'ai des données comme ceci:
df = sqlContext.createDataFrame([
('1986/10/15', 'z', 'null'),
('1986/10/15', 'z', 'null'),
('1986/10/15', 'c', 'null'),
('1986/10/15', 'null', 'null'),
('1986/10/16', 'null', '4.0')],
('low', 'high', 'normal'))
Je veux calculer la date de différence entre low
colonne et 2017-05-02
et remplacer low
colonne avec la différence. J'ai essayé les solutions liées à la sur stackoverflow mais aucun des deux ne fonctionne.
OriginalL'auteur Mark Krystal | 2017-05-17
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de jeter la colonne
low
à la classe date et puis vous pouvez utiliserdatediff()
en combinaison aveclit()
. À L'Aide De Étincelle 2.2:À l'aide de < Étincelle 2.2, nous avons besoin de convertir le
low
colonne à la classetimestamp
première:Et si il y a Nan valeur dans
low
de la colonne?c'est parce que vous êtes à l'aide de Spark < 2.2
voir mise à jour avec exemple
Merci. Le ci-dessus est juste un test de données. Mes données réelles a de nombreuses valeurs
low
colonne qui ne peuvent pas être jeté dans latimestamp
. Comment puis-je mettre ces valeurs à NaN lors de " cast("timestamp") `? homoserine llike pandas: pd.to_datetime(erreurs = 'forcer')OriginalL'auteur mtoto
Sinon, comment faire pour trouver le nombre de jours écoulés entre deux actions de l'utilisateur à l'aide de pySpark:
OriginalL'auteur Artem Zaika