Нет доступа к вашему newdf.Я создал временный набор данных, подобный следующему
c: \ tmp \ f4.csv
dt
20180212 15:10:10.000
20180212 15:10:10.000
20180212 15:10:10.000
Код следующий:
from pyspark.sql.functions import *
from pyspark.sql.types import *
from datetime import datetime
schema=StructType([StructField("dt",StringType())])
f1=spark.read.format("csv").schema(schema).option("header","true").option("delimiter","|").load("c:/tmp/f4.csv")
dateformat = udf(lambda x: datetimeformat(x), StringType())
def datetimeformat(x):
return datetime.strptime(x, '%Y%m%d %H:%M:%S.%f').strftime('%Y-%m-%d %H:%M:%S.%f')
f2=f1.withColumn("date",dateformat(f1["dt"]))
f2.show()
Вывод
+--------------------+--------------------+
| dt| date|
+--------------------+--------------------+
|20180212 15:10:10...|2018-02-12 15:10:...|
|20180212 15:10:10...|2018-02-12 15:10:...|
|20180212 15:10:10...|2018-02-12 15:10:...|
+--------------------+--------------------+