Scala [Spark][DataFrame]计算每周第一天的最优雅方式

Scala [Spark][DataFrame]计算每周第一天的最优雅方式,scala,apache-spark,Scala,Apache Spark,我在数据框中有数据,列为DateTime。现在我想知道一周的第一天,第一天是星期一 因此,我想到了以下方法来实现这一点- 通过算术计算: import org.apache.spark.sql.functions.\ucode> val df1=Seq((1,“2020-05-12 10:23:45”,5000),(2,“2020-11-11 12:12:12”,2000)).toDF(“id”,“日期时间”,“毫秒”) val new\u df1=df1.带有列(“周”,日期,子(下一天(“

我在数据框中有数据,列为
DateTime
。现在我想知道一周的第一天,第一天是星期一

因此,我想到了以下方法来实现这一点-

  • 通过算术计算:

    import org.apache.spark.sql.functions.\ucode>

    val df1=Seq((1,“2020-05-12 10:23:45”,5000),(2,“2020-11-11 12:12:12”,2000)).toDF(“id”,“日期时间”,“毫秒”)

    val new\u df1=df1.带有列(“周”,日期,子(下一天(“日期时间”),“星期一”),7))

    结果-

  • 创建执行类似活动的自定义项(优先级最低)

  • df1.带列(“周”、“日期”、“周”、“日期时间”)

如果有更多的方法来实现这一点,我希望看到更多的实现。
提前感谢。

还有什么比您想要的
date\u trunc
函数更优雅的方法呢?我已经在这里回答了性能最好的方法-。你问其他问题的任何原因这能回答你的问题吗@托姆卢斯,萨默什瓦。谢谢你的帮助,还有其他可能的实现吗?我是Spark Scala的新手,我想知道特定任务的各种实现方式,以便我可以评估使用哪种以及在哪里使用。您无需给出明确的答案,只需帮我指明方向,我将致力于另一个实现。您想要的是比
date\u trunc
函数更优雅的方式吗?我已经在这里回答了最佳性能方式-。你问其他问题的任何原因这能回答你的问题吗@托姆卢斯,萨默什瓦。谢谢你的帮助,还有其他可能的实现吗?我是Spark Scala的新手,我想知道特定任务的各种实现方式,以便我可以评估使用哪种以及在哪里使用。您无需给出明确的答案,只需帮助我确定方向,我将致力于另一个实现。