Spark中的星期几日期格式字符串Java

时间:2019-08-01 12:10:36

标签: scala apache-spark apache-spark-sql date-format

val df = Seq("2019-07-30", "2019-08-01").toDF
val dd = df.withColumn("value", to_date('value))
dd.show(false)

根据文档https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

F是格式字符串,如果我需要查看每月的星期几。还有

dd.withColumn("dow", date_format('value, "EEEE")).withColumn("dow_number", date_format('value, "F")).show(false)

+----------+--------+----------+
|value     |dow     |dow_number|
+----------+--------+----------+
|2019-07-30|Tuesday |5         |
|2019-08-01|Thursday|1         |
+----------+--------+----------+

仅提供当月的星期几,而不提供星期几。

哪个格式的字符串给我星期几作为数字/整数?

很明显,我可以使用:http://www.java2s.com/Tutorials/Java/Data_Type_How_to/Date/Get_day_of_week_int_value_and_String_value.htm 但是不想去使用UDF /不想使用优化过的催化剂date_format。那么哪个日期格式的字符串可以给我想要的结果?

2 个答案:

答案 0 :(得分:1)

如评论中所述,您正在寻找"u"格式。

另外,从spark 2.3.0开始,您可能想使用dayofweek方法,该方法更快dayofweek documentation

答案 1 :(得分:0)

  

您的代码是正确的,而不是“ F” ,只需使用如下的“ u”

dd.withColumn("dow", date_format('value, "EEEE")).withColumn("dow_number", date_format('value, "F")).show(false)

enter image description here