Convertir la date du format String au format Date dans les données
Je suis en train de convertir une colonne qui est dans un format de Chaîne de format de Date à l'aide de to_date fonction, mais son retour des valeurs Null.
df.createOrReplaceTempView("incidents")
spark.sql("select Date from incidents").show()
+----------+
| Date|
+----------+
|08/26/2016|
|08/26/2016|
|08/26/2016|
|06/14/2016|
spark.sql("select to_date(Date) from incidents").show()
+---------------------------+
|to_date(CAST(Date AS DATE))|
+---------------------------+
| null|
| null|
| null|
| null|
La colonne de la Date dans un format de Chaîne
|-- Date: string (nullable = true)
source d'informationauteur Ishan Kumar
Vous devez vous connecter pour publier un commentaire.
Utilisation
to_date
avec JavaSimpleDataFormat
.Exemple:
J'ai résolu le même problème sans le temp et de table/vue avec dataframe fonctions.
Bien sûr, j'ai trouvé qu'un seul format fonctionne avec cette solution, et c'est
yyyy-MM-DD
.Par exemple:
L'heure de cours a
00:00:00.0
comme une valeur de temps.Depuis votre principal but était de convertir le type d'une colonne dans un DataFrame de la Chaîne d'Horodatage, je pense que cette approche serait mieux.
Vous pouvez également utiliser
to_timestamp
(je pense que c'est disponible à partir de Spark 2.x) si vous avez besoin de précision, d'horodatage.vous pouvez également faire cette requête...!
dateID est de type int colonne contient la date en Int format
étincelle.sql("SELECT from_unixtime(unix_timestamp(cast(dateid que varchar(10)), 'yyyymmdd'), 'yyyy-mm-dd') à partir de XYZ").show(50, false)
Vous pouvez également passer le format de date
Par Exemple