如何在spark sql>=v3.0中转换年\周

o7jaxewo  于 2021-05-26  发布在  Spark
关注(0)|答案(0)|浏览(499)

我在dataframe/rdd中有一个字符串字段(我在r中工作,但最后是sparksql),它的格式是 2020_42 (其中42是周数),我需要将其转换为日期格式(以一周的第一天为例)。
我发现很多答案都是一样的,但都不管用了。以下是我发现的两个主要方法:

unix_timestamp(year_week, "yyyy_ww")
to_date(year_week, "yyyy_ww")

我也可以在一年的周末加上“\u 1”,在字符串格式的末尾加上“\u”来指定星期一,但这不是问题所在:显然你不应该再这样做了。
当我执行此操作时,我在驱动程序中得到以下消息:

Error : org.apache.spark.SparkUpgradeException: You may get a different result due to the upgrading of Spark 3.0:
 Fail to recognize 'yyyy_ww' pattern in the DateTimeFormatter.
  1) You can set spark.sql.legacy.timeParserPolicy to LEGACY to restore the behavior before Spark 3.0.
  2) You can form a valid datetime pattern with the guide from https://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html

因此,我查看了指定的url,但没有看到任何将周数转换为日期的方法(尽管我看到了很多相反的方法)。
我确实使用了给定的参数使其与遗留模式一起工作,但这不是一个长期的解决方案。所以我的问题是:如何在spark>=3.0中将周数字符串转换为日期?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题