Bagaimana cara mengekstrak jam dari datetime di pyspark dataframe?

0
Pilih

Saya memiliki pyspark dataframe seperti berikut:

Saya memiliki pyspark pyspark dataframe seperti berikut:
df.show(5)

+----------+
|   t_start|
+----------+
|1506125172|
|1506488793|
|1506242331|
|1506307472|
|1505613973|
+----------+
df.show(5) +----------+ | t_start| +----------+ |1506125172| |1506488793| |1506242331| |1506307472| |1505613973| +----------+ df.show (5) + ----------+ | t_start| + ----------+ | 1506125172| | 1506488793| | 1506242331| | 1506307472| | 1505613973| + ----------+

Saya ingin mendapatkan jam dan hari dari setiap stempel waktu unix. Ini yang saya lakukan:

Saya ingin mengetahui jam dan hari dari setiap stempel waktu unix. Inilah yang saya lakukan:
df=df.withColumn("datetime", F.from_unixtime("t_start","dd/MM/yyyy HH:mm:ss"))
df=df.withColumn("hour", F.date_trunc('hour',F.to_timestamp("datetime","yyyy-MM-dd HH:mm:ss")))
df.show(5)

+----------+-------------------+----+
|   t_start|           datetime|hour|
+----------+-------------------+----+
|1506125172|23/09/2017 00:06:12|null|
|1506488793|27/09/2017 05:06:33|null|
|1506242331|24/09/2017 08:38:51|null|
|1506307472|25/09/2017 02:44:32|null|
|1505613973|17/09/2017 02:06:13|null|
+----------+-------------------+----+
df=df.withColumn("datetime", F.from_unixtime("t_start","dd/MM/yyyy HH:mm:ss")) df=df.withColumn("hour", F.date_trunc('hour',F.to_timestamp("datetime","yyyy-MM-dd HH:mm:ss"))) df.show(5) +----------+-------------------+----+ | t_start| datetime|hour| +----------+-------------------+----+ |1506125172|23/09/2017 00:06:12|null| |1506488793|27/09/2017 05:06:33|null| |1506242331|24/09/2017 08:38:51|null| |1506307472|25/09/2017 02:44:32|null| |1505613973|17/09/2017 02:06:13|null| +----------+-------------------+----+ df=df.withColumn ("datetime", F.from_unixtime ("t_start","hh/MM/tttt JJ: mm: dd")) df=df.withColumn ("hour", F.date_trunc ('hour', F.to_timestamp ("datetime","yyyy-MM-hh HH: mm: ss"))) df.show (5) + ----------+ -------------------+ ----+ | t_start| tanggal waktu| jam| + ----------+ -------------------+ ----+ | 1506125172| 23/09/2017 00: 06: 12| null| | 1506488793| 27/09/2017 05: 06: 33| null| | 1506242331| 24/09/2017 08: 38: 51| null| | 1506307472| 25/09/2017 02: 44: 32| null| | 1505613973| 17/09/2017 02: 06: 13| null| + ----------+ -------------------+ ----+

Dan saya mendapat null di kolom hour

Dan saya mendapat null null di kolom hour hour

Sumber

pyspark python

-Joe Ferndz

-Joe Ferndz

2 Jawaban
0
Pilih

Anda dapat menggunakan hour() berfungsi untuk mengekstrak satuan jam dari kolom cap waktu. (Juga, ubah format tanggal Anda. Dalam dd/MM/yyyy)

from pyspark.sql import functions as F
from pyspark.sql.functions import *

df.withColumn("hour", hour(F.to_timestamp("datetime","dd/MM/yyyy HH:mm:ss"))).show()
+----------+-------------------+----+
|   t_start|           datetime|hour|
+----------+-------------------+----+
|1506125172|23/09/2017 00:06:12|   0|
|1506488793|27/09/2017 05:06:33|   5|
|1506242331|24/09/2017 08:38:51|   8|
|1506307472|25/09/2017 02:44:32|   2|
|1505613973|17/09/2017 02:06:13|   2|
+----------+-------------------+----+
Sumber
0
Pilih

Anda dapat menggunakan hour berfungsi dengan from_unixtime sederhana.

from pyspark.sql.functions import *
df.withColumn('hour', hour(from_unixtime('t_start'))).show()

+----------+----+
|   t_start|hour|
+----------+----+
|1506125172|   0|
|1506488793|   5|
|1506242331|   8|
|1506307472|   2|
|1505613973|   2|
+----------+----+
Sumber

Anda Mungkin Menarik

© 2021   Pemrograman.Net