Вы возвращаете адрес локальной переменной, которая больше не существует, когда функция потока завершается. В любом случае, зачем вызывать pthread_exit? почему бы просто не вернуть значение из функции потока?
void *myThread()
{
return (void *) 42;
}
, а затем в основном:
printf("%d\n",(int)status);
Если вам нужно вернуть сложное значение такой структуры, возможно, это проще всего распределить его динамически через malloc () и вернуть указатель. Конечно, код, инициировавший поток, будет отвечать за освобождение памяти.
Вы можете попробовать следующий код:
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|
+---+-----------------------------+-------------------+