Я использую pyspark 2.3.У меня есть фрейм данных, содержащий столбец «ВРЕМЯ» в формате String для значений DateTime.где столбец выглядит следующим образом:
+---------------+
| TIME|
+---------------+
| 2016/04/14 190|
| 2016/04/15 180|
|2016/04/14 1530|
|2016/04/16 1530|
| 2016/04/17 160|
+---------------+
, где первые две цифры в 190
или 1530
представляют час, а остальные - минуты.Я попытался преобразовать его в тип отметки времени, используя следующие строки:
df.withColumn('TIME_timestamp',fn.unix_timestamp('TIME','yyyy/MM/dd HHMM').cast(TimestampType()))
, а также:
df.withColumn('TIME_timestamp', fn.to_timestamp("TIME", 'yyyy/MM/dd HHMM'))
, но в результате получилось:
+---------------+-------------------+
| TIME| TIME_timestamp|
+---------------+-------------------+
| 2016/04/14 190| null|
| 2016/04/15 180| null|
|2016/04/14 1530| null|
|2016/04/16 1530| null|
| 2016/04/17 160| null|
+---------------+-------------------+
Итакнужный Dataframe должен выглядеть следующим образом:
+---------------+
| TIME_timestamp|
+---------------+
| 16-04-15 19:00|
| 16-04-15 18:00|
| 16-04-15 15:30|
| 16-04-15 15:30|
| 16-04-15 16:00|
+---------------+