spark 中的星期几日期格式字符串 java

day of week date format string java inside spark

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。那么哪个日期格式字符串给我想要的结果呢?

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

此外,从 spark 2.3.0 开始,您可能希望使用 dayofweek 方法,该方法速度更快 dayofweek documentation

your code is correct instead of "F" just use "u" like below

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