擅长:python、mysql、java
<p>试试这个-</p>
<pre class="lang-scala prettyprint-override"><code> // week starting from monday, concat "-1", for tuesday "-2" etc.
val p = df2.withColumn("week_start", to_date(concat($"year_week", lit("-1")), "YYYY-'W'ww-u"))
.withColumn("week_end", next_day($"week_start", "SUN"))
p.show(false)
p.printSchema()
/**
* + -+ + +
* |year_week|week_start|week_end |
* + -+ + +
* |2019-W51 |2019-12-16|2019-12-22|
* |2019-W52 |2019-12-23|2019-12-29|
* |2020-W01 |2019-12-30|2020-01-05|
* |2020-W02 |2020-01-06|2020-01-12|
* |2020-W03 |2020-01-13|2020-01-19|
* |2020-W04 |2020-01-20|2020-01-26|
* |2020-W05 |2020-01-27|2020-02-02|
* |2020-W06 |2020-02-03|2020-02-09|
* |2020-W07 |2020-02-10|2020-02-16|
* + -+ + +
*
* root
* | year_week: string (nullable = true)
* | week_start: date (nullable = true)
* | week_end: date (nullable = true)
*/
</code></pre>