我在 Pyspark 方面的经验很少,我尝试从包含每行时间戳的列中创建 3 个新列,但没有成功。
包含日期的列具有以下格式:EEE MMM dd HH:mm:ss Z yyyy
。
所以它看起来像这样:
+--------------------+
| timestamp|
+--------------------+
|Fri Oct 18 17:07:...|
|Mon Oct 21 21:49:...|
|Thu Oct 31 18:03:...|
|Sun Oct 20 15:00:...|
|Mon Sep 30 23:35:...|
+--------------------+
这 3 列必须包含:作为整数的星期几(因此 0 代表星期一,1 代表星期二……)、月份和年份。 创建这些额外的 3 列并将它们附加到 pyspark 数据帧的最有效方法是什么?提前致谢!!
答案 0 :(得分:1)
Spark 1.5 及更高版本具有许多日期处理功能。这里有一些可能对你有用
from pyspark.sql.functions import *
from pyspark.sql.functions import year, month, dayofweek
df = df.withColumn('dayOfWeek', dayofweek(col('your_date_column')))
df = df.withColumn('month', month(col('your_date_column')))
df = df.withColumn('year', year(col('your_date_column')))