使用SparklyR中的datetime列的星期几

问题描述

我正在对一个大型数据集进行一些分析,因此使用闪亮的R来保存数据。我的spark数据框中的一列是datetime列,例如2015-05-01 13:40:47

我希望在该日期对应的星期几的火花数据框中添加新列。我已经尝试了很多事情,但是没有运气,因为我是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","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       |
    +---+-----------------------+---------------+-------------+
    */