Текущий формат даты и времени в StructField с типом TimestampType - PullRequest
0 голосов
/ 09 апреля 2020

Попытка создать фрейм данных с одним из полей в качестве метки времени (текущая метка времени в формате% Y-% m-% d% H:% M:% S с использованием date.today()). Я пробовал несколько способов, но это, кажется, не принимает. Я создаю данные в виде предварительного списка и передаю их в CreateDataFrame, когда время начала задается в качестве формата даты и времени

data_for_frame = [{'program': 'SomeProg', 'operation': 'SomeOperation', 'hostname': 'test-hostname', 'starttime': datetime.date(2020, 4, 9), 'endtime': '2020-04-09 06:01:34'

schema_frame = StructType(List(StructField(program,StringType,true),StructField(operation,StringType,true),StructField(marketplace,StringType,true),StructField(hostname,StringType,true),StructField(starttime,TimestampType,true),StructField(endtime,TimestampType,true)))

dynamic_frame = sparkSession.createDataFrame(data_frame, schema_frame)

И когда время начала устанавливается в формате строки

data_for_frame = [{'program': 'SomeProg', 'operation': 'SomeOperation', 'hostname': 'test-hostname', 'starttime': '2020-04-09 06:01:34', 'endtime': '2020-04-09 06:01:34'

schema_frame = StructType(List(StructField(program,StringType,true),StructField(operation,StringType,true),StructField(marketplace,StringType,true),StructField(hostname,StringType,true),StructField(starttime,TimestampType,true),StructField(endtime,TimestampType,true)))

Когда я передать ему данные в формате даты и времени date.today() с ошибкой

TypeError: field starttime: TimestampType can not accept object datetime.date(2020, 4, 9) in type <class 'datetime.date'>

в виде числа с плавающей запятой

time.time()

в виде строки

time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))

в виде строки

now = datetime.now()
date_time = now.strftime("%m-%d-%Y %H:%M:%S")

завершается с

TypeError: field starttime: TimestampType can not accept object '2020-04-09 06:01:34' in type <class 'str'>
...