Я не знаю точно, в каком формате вы собираетесь использовать 5 цифр для времени и 6 (нано секунд?) В конце, но знаете, что временные метки в Spark - это миллисекунды, а не наносекунды, так что вы собираетесьпотерять информацию.
При этом вы можете использовать метод Spark unix_timestamp
для преобразования строк в метки времени с использованием синтаксиса SimpleDateFormat
.
Сначала вам, вероятно, придетсяизбавиться от последних 3 цифр метки времени, используя Spark's regexp_replace
В Scala, который будет выглядеть так:
regexp_replace(df("arrivetime"), """(\.\d{3})\d*""", """$1""")
Тогда вы можете использоватьunix_timestamp
вроде так:
unix_timestamp([replaced string], "yyyyMMdd'T'HHmmss.SSSz")