擅长:python、mysql、java
<p>使用<code>from_unixtime and unix_timestamp</code>函数,因为<code>hour</code>用于从<code>timestamp</code>(或)<code>string(yyyy-MM-dd HH:mm:ss)</code>类型提取小时值</p>
<pre><code>from pyspark.sql.functions import *
#sample data
df.show(truncate=False)
#+ + -+
#|identifier|timestamp |
#+ + -+
#|1 |2020-03-18 14:41:55 UTC|
#+ + -+
#DataFrame[identifier: string, timestamp: string]
df.withColumn("hour", from_unixtime(unix_timestamp(col("timestamp"),"yyyy-MM-dd hh:mm:ss"),"yyyy-MM-dd hh:00:00")).show()
#+ + + -+
#|identifier| timestamp| hour|
#+ + + -+
#| 1|2020-03-18 14:41:...|2020-03-18 14:00:00|
#+ + + -+
</code></pre>
<hr/>
<p><strong><code>Usage of hour function:</code></strong></p>
<pre><code>#on string type
spark.sql("select hour('2020-03-04 12:34:34')").show()
#on timestamp type
spark.sql("select hour(timestamp('2020-03-04 12:34:34'))").show()
#+ -+
#|_c0|
#+ -+
#| 12|
#+ -+
</code></pre>