【发布时间】:2020-12-09 12:03:17
【问题描述】:
我正在对一个大型数据集进行一些分析,因此我使用 sparkly R 来保存数据。我的 spark 数据框中的一列是 datetime 列,例如 2015-05-01 13:40:47
我希望在我的 spark 数据框中添加一个新列,其中包含该日期对应的星期几。我已经尝试了很多东西,但都没有运气,因为我对 SparkR 完全陌生。
任何帮助将不胜感激。
谢谢
【问题讨论】:
我正在对一个大型数据集进行一些分析,因此我使用 sparkly R 来保存数据。我的 spark 数据框中的一列是 datetime 列,例如 2015-05-01 13:40:47
我希望在我的 spark 数据框中添加一个新列,其中包含该日期对应的星期几。我已经尝试了很多东西,但都没有运气,因为我对 SparkR 完全陌生。
任何帮助将不胜感激。
谢谢
【问题讨论】:
这就是你在 Pyspark 中的做法。它应该与 SparkR 非常相似。
from pyspark.sql import functions as F
df = spark.createDataFrame(
[
(1,'2020-07-01 12:01:19.000'),
(2,'2020-06-24 12:01:19.000'),
(3,'2020-08-16 16:44:55.406')
],
['id','date_timestamp']
)
df.show()
/*
+---+-----------------------+
|id |date_timestamp |
+---+-----------------------+
|1 |2020-07-01 12:01:19.000|
|2 |2020-06-24 12:01:19.000|
|3 |2020-08-16 16:44:55.406|
+---+-----------------------+
*/
df.withColumn("date_timestamp", F.col("date_timestamp").cast('timestamp')
).withColumn("week_day_number", F.date_format(F.col("date_timestamp"), "u")
).withColumn("week_day_full", F.date_format(F.col("date_timestamp"), "EEEE")
).show()
/*
+---+-----------------------+---------------+-------------+
|id |date_timestamp |week_day_number|week_day_full|
+---+-----------------------+---------------+-------------+
|1 |2020-07-01 12:01:19 |3 |Wednesday |
|2 |2020-06-24 12:01:19 |3 |Wednesday |
|3 |2020-08-16 16:44:55.406|7 |Sunday |
+---+-----------------------+---------------+-------------+
*/
【讨论】: