Ho un dataframe che ha due colonne (C, D) sono definite come tipo di colonna di stringhe, ma i dati nelle colonne sono effettivamente date. per esempio la colonna C ha la data come "01-APR-2015" e la colonna D come "20150401" Voglio cambiare questi per il tipo di colonna data, ma non ho trovato un buon modo per farlo. Osservo l'overflow dello stack Ho bisogno di convertire il tipo di colonna di stringhe nel tipo di colonna Date in DataFrame di Spark SQL. il formato della data può essere "01-APR-2015" e guardo this post ma non ha avuto informazioni riferiscono ad oggiCome modificare il tipo di colonna da String a Date in DataFrames?
12
A
risposta
30
Spark> = 2.2
È possibile utilizzare to_date
:
import org.apache.spark.sql.functions.{to_date, to_timestamp}
df.select(to_date($"ts", "dd-MMM-yyyy").alias("date"))
o to_timestamp
:
df.select(to_date($"ts", "dd-MMM-yyyy").alias("timestamp"))
con intermedia unix_timestamp
chiamata.
Spark < 2,2
Dal Spark 1.5 è possibile utilizzare unix_timestamp
funzione per analizzare la stringa a lungo, gettarlo ai timestamp e troncare to_date
:
import org.apache.spark.sql.functions.{unix_timestamp, to_date}
val df = Seq((1L, "01-APR-2015")).toDF("id", "ts")
df.select(to_date(unix_timestamp(
$"ts", "dd-MMM-yyyy"
).cast("timestamp")).alias("timestamp"))
Nota:
A seconda della versione di Spark, potrebbe essere necessario apportare alcune modifiche a causa di SPARK-11724 :
La trasmissione da tipi interi a timestamp considera la sorgente int come in millis. Il cast da timestamp a tipi interi crea il risultato in secondi.
Se si utilizza senza patch versione unix_timestamp
uscita richiede la moltiplicazione per 1000.
Problemi correlati
- 1. Come modificare il tipo di colonna di matrice in R
- 2. come modificare una colonna Dataframe da String type a Double type in pyspark
- 3. Come ottenere un oggetto Date da String
- 4. Come cambio il tipo di colonna in Heroku?
- 5. Come modificare un tipo di mongodb da Double o Integer a String?
- 6. Cambia il tipo di colonna da ntext a varbinary (max)
- 7. Convertire il tipo di colonna DataFrame da stringa a datetime
- 8. Panda: impossibile modificare il tipo di dati di colonna
- 9. Panda unione DataFrames in base alla combinazione indice/colonna
- 10. Ottieni il tipo da std :: string, C++
- 11. formatting date string in cakephp
- 12. Come modificare l'ordine principale da riga a colonna con facet_wrap?
- 13. Come modificare una colonna e modificare il valore predefinito?
- 14. Conversione SQL tipo di colonna da float a varchar
- 15. Come convertire/eseguire il cast da long a String?
- 16. Come sottrarre una colonna di giorni da una colonna di date in Pyspark?
- 17. Conversione da TextView a String (tipo di) Android
- 18. Come convalidare la data quando si usa `String` invece di un tipo` Date`?
- 19. Come modificare il tipo di dati di una colonna in una tabella PostgreSQL?
- 20. Dovrei modificare il prototipo di String?
- 21. Dot-boxplot da DataFrames
- 22. Come modificare il tipo di dati di una colonna con un valore predefinito
- 23. Come interrogare la colonna di dati JSON usando Spark DataFrames?
- 24. come convertire unix epoch time to date string in hive
- 25. Come modificare il tipo di campo in Ecto?
- 26. Migrazioni delle rotaie: provato a cambiare il tipo di colonna da stringa a intero
- 27. Modifica un tipo di dati della colonna mySQL da testo a timestamp
- 28. String per oggetto Date/Ora in Android
- 29. Come risolviamo tutto questo "La conversione da tipo DBNull a tipo String non è valida" nastiness?
- 30. In SQL Server modificare la colonna di tipo int per digitare il testo
mia modifica è stata respinta ma sono abbastanza sicuro che ci sia un "}" manca nella vostra prima linea di importazione e ha scritto "to_date" invece di "to_timestamp" linea 7 – Fabich