#dataframe #pyspark #apache-spark-sql #databricks
#фрейм данных #pyspark #apache-spark-sql #блоки данных
Вопрос:
У меня есть поле visit_start_time_gmt в формате bigint, я смог преобразовать его в date_time, но теперь мне нужно удалить временную часть метки времени в другом столбце, см. Пример данных ниже
Ответ №1:
Если вы хотите сократить время, используйте date_trunc()
функцию.
- Если вы хотите преобразовать в дату, тогда используйте функцию
to_date
().
Example:
df.show()
# --------------------
#|visit_start_time_gmt|
# --------------------
#| 1522555602|
#| 1522622390|
# --------------------
from pyspark.sql.functions import *
df.withColumn("date_hour",date_trunc("HOUR",to_timestamp(col("visit_start_time_gmt")))).
withColumn("date",to_date(to_timestamp(col("visit_start_time_gmt")))).
show()
-------------------- ------------------- ----------
|visit_start_time_gmt| date_hour| date|
-------------------- ------------------- ----------
| 1522555602|2018-04-01 04:00:00|2018-04-01|
| 1522622390|2018-04-01 22:00:00|2018-04-01|
-------------------- ------------------- ----------