Pyspark разобрать пользовательский формат даты

Вы возвращаете адрес локальной переменной, которая больше не существует, когда функция потока завершается. В любом случае, зачем вызывать pthread_exit? почему бы просто не вернуть значение из функции потока?

void *myThread()
{
   return (void *) 42;
}

, а затем в основном:

printf("%d\n",(int)status);   

Если вам нужно вернуть сложное значение такой структуры, возможно, это проще всего распределить его динамически через malloc () и вернуть указатель. Конечно, код, инициировавший поток, будет отвечать за освобождение памяти.

0
задан Michail N 19 March 2019 в 08:29
поделиться

1 ответ

Вы можете попробовать следующий код:

from pyspark.sql.functions import *
d =  spark.createDataFrame([(1,"Mon Jan 14 11:43:20 EET 2019"),\
                      (2,"Wed Jun 27 16:26:46 EEST 2018")],\
                      ["id","time_str"]) 

pattern = "EEE MMM dd HH:mm:ss z yyyy"
d.withColumn("timestamp", unix_timestamp(col("time_str"), pattern).cast("timestamp")).show(truncate=False)

Он производит вывод ниже. Для дальнейшей документации вы можете обратиться к https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html , которые я использовал для поиска EEE и [113 ], что необходимо, поскольку у вас есть 3 символа в день недели и месяц соответственно.

+---+-----------------------------+-------------------+
|id |time_str                     |timestamp          |
+---+-----------------------------+-------------------+
|1  |Mon Jan 14 11:43:20 EET 2019 |2019-01-14 09:43:20|
|2  |Wed Jun 27 16:26:46 EEST 2018|2018-06-27 13:26:46|
+---+-----------------------------+-------------------+
0
ответ дан gaw 19 March 2019 в 08:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: