Comment convertir timestamp unix à ce jour dans Spark
J'ai un bloc de données d'une colonne timestamp unix(par exemple.1435655706000), et je veux convertir des données au format 'aaaa-MM-JJ', j'ai essayé nscala-temps, mais il ne fonctionne pas.
val time_col = sqlc.sql("select ts from mr").map(_(0).toString.toDateTime)
time_col.collect().foreach(println)
et je suis d'erreur:
java.lang.IllegalArgumentException: format non Valide: "1435655706000" est mal formé à "6000"
source d'informationauteur youngchampion
Vous devez vous connecter pour publier un commentaire.
Depuis spark1.5 , il y a un builtin UDF de le faire.
Veuillez vérifier Spark 1.5.2 Doc API pour plus d'info.
Vous devez importer les bibliothèques suivantes.
Ou en s'adaptant à votre cas :
Il pourrait y avoir une autre façon :
Espère que cela aide 🙂
Ici, c'est l'utilisation de Scala DataFrame fonctions: from_unix_time et to_date
J'ai résolu ce problème en utilisant la joda-time de la bibliothèque de la cartographie sur le
DataFrame
et la conversion de laDateTime
dans une Chaîne de caractères :Vous n'avez pas besoin de convertir en String avant de l'appliquer toDataTime avec nscala_time
import com.github.nscala_time.time.Imports._
`