#datetime #pyspark
#datetime #pyspark
Вопрос:
У меня есть данные метки времени, такие как:
[29:23:59:45]
Это означает любой месяц 29, 23:59:45
Как я могу преобразовать в PySpark, например, ДЕНЬ 29, ВРЕМЯ: 23:59:45?
Возможно, используя что-то вроде
from datetime import datetime
dVal = datetime.strptime('[29:23:59:45]', '%d/%h/%m/%s')
Ответ №1:
Это классический пример, для которого необходимо использовать определяемую пользователем функцию (UDF).
from datetime import datetime
from spark.sql import functions as F
def toDate(x):
return datetime.strptime(x, '%m %H:%M:%S')
toDate = F.udf(toDate)
new_df = df.withColumn('date', toDate(F.col('timestamp'))
где df должен быть старым фреймом данных, содержащим столбец с именем ‘timestamp’, как вы сообщили.