如何在pyspark中保存没有日期的时间信息?
How to save time info without date in pyspark?
我正在尝试在 pyspark
中保存时间信息(例如小时、分钟、秒)而不需要其他日期信息。有没有办法做到这一点?我可以使用时间戳,但这需要将日期信息填写为一些标准的无意义日期。是否有一种仅用于时间信息的类型?
示例:
from pyspark.sql import functions as F
df = spark.createDataFrame([('1997-02-28 10:30:00',)], ['t'])
df = (
df
.select(F.to_timestamp(df.t).alias('timestamp'))
.withColumn('time_col', F.some_function_i_dont_know(F.col('timestamp')))
)
请注意,我不想使用 date_format
函数,因为它只会创建一个字符串。
在 spark 中没有时间类型,但您可以使用 int
(或)string
.
Example:
spark.sql("select int(date_format(current_Timestamp(),'HHmmssSSS'))as time").\
printSchema()
#root
# |-- time: integer (nullable = true)
spark.sql("select int(date_format(current_Timestamp(),'HHmmssSSS')) as time").\
show()
#+---------+
#| time|
#+---------+
#|130250300|
#+---------+
#as string
spark.sql("select (date_format(current_Timestamp(),'HH:mm:ss.SSS')) as time").show()
#+------------+
#| time|
#+------------+
#|13:04:08.527|
#+------------+
我正在尝试在 pyspark
中保存时间信息(例如小时、分钟、秒)而不需要其他日期信息。有没有办法做到这一点?我可以使用时间戳,但这需要将日期信息填写为一些标准的无意义日期。是否有一种仅用于时间信息的类型?
示例:
from pyspark.sql import functions as F
df = spark.createDataFrame([('1997-02-28 10:30:00',)], ['t'])
df = (
df
.select(F.to_timestamp(df.t).alias('timestamp'))
.withColumn('time_col', F.some_function_i_dont_know(F.col('timestamp')))
)
请注意,我不想使用 date_format
函数,因为它只会创建一个字符串。
在 spark 中没有时间类型,但您可以使用 int
(或)string
.
Example:
spark.sql("select int(date_format(current_Timestamp(),'HHmmssSSS'))as time").\
printSchema()
#root
# |-- time: integer (nullable = true)
spark.sql("select int(date_format(current_Timestamp(),'HHmmssSSS')) as time").\
show()
#+---------+
#| time|
#+---------+
#|130250300|
#+---------+
#as string
spark.sql("select (date_format(current_Timestamp(),'HH:mm:ss.SSS')) as time").show()
#+------------+
#| time|
#+------------+
#|13:04:08.527|
#+------------+