Python Spark Dataframe中,字符串列到时间戳的转换可以通过使用Spark的内置函数和类型转换函数来实现。
首先,需要导入相关的模块和函数:
from pyspark.sql import SparkSession
from pyspark.sql.functions import unix_timestamp, to_timestamp
from pyspark.sql.types import TimestampType
接下来,创建一个SparkSession对象:
spark = SparkSession.builder.getOrCreate()
然后,读取数据并创建一个Dataframe对象:
data = [("2022-01-01 10:30:00"), ("2022-01-02 15:45:00")]
df = spark.createDataFrame(data, ["timestamp_string"])
df.show()
输出结果为:
+-------------------+
| timestamp_string|
+-------------------+
|2022-01-01 10:30:00|
|2022-01-02 15:45:00|
+-------------------+
现在,我们可以使用内置函数to_timestamp
将字符串列转换为时间戳类型的列:
df = df.withColumn("timestamp", to_timestamp("timestamp_string"))
df.show()
输出结果为:
+-------------------+-------------------+
| timestamp_string| timestamp|
+-------------------+-------------------+
|2022-01-01 10:30:00|2022-01-01 10:30:00|
|2022-01-02 15:45:00|2022-01-02 15:45:00|
+-------------------+-------------------+
如果字符串列的格式不是Spark默认的时间戳格式(yyyy-MM-dd HH:mm:ss),可以使用unix_timestamp
函数将其转换为Unix时间戳,然后再使用to_timestamp
函数将Unix时间戳转换为时间戳类型的列:
df = df.withColumn("unix_timestamp", unix_timestamp("timestamp_string", "yyyy-MM-dd HH:mm:ss"))
df = df.withColumn("timestamp", to_timestamp("unix_timestamp"))
df.show()
输出结果为:
+-------------------+-------------------+--------------+
| timestamp_string| timestamp|unix_timestamp|
+-------------------+-------------------+--------------+
|2022-01-01 10:30:00|2022-01-01 10:30:00| 1640994600|
|2022-01-02 15:45:00|2022-01-02 15:45:00| 1641080700|
+-------------------+-------------------+--------------+
以上就是将Python Spark Dataframe中的字符串列转换为时间戳的方法。在实际应用中,可以根据具体的需求选择合适的方法进行转换。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云