小编Gra*_*non的帖子

weekofyear()返回1月1日看似不正确的结果

我不太清楚为什么我的代码给出了52作为答案:weekofyear("01/JAN/2017").

有没有人对此有可能的解释?有一个更好的方法吗?

from pyspark.sql import SparkSession, functions
spark = SparkSession.builder.appName('weekOfYear').getOrCreate()
from pyspark.sql.functions import to_date

df = spark.createDataFrame(
    [(1, "01/JAN/2017"), (2, "15/FEB/2017")], ("id", "date")) 

df.show()
+---+-----------+
| id|       date|
+---+-----------+
|  1|01/JAN/2017|
|  2|15/FEB/2017|
+---+-----------+
Run Code Online (Sandbox Code Playgroud)

计算一年中的一周

df=df.withColumn("weekofyear", functions.weekofyear(to_date(df["date"],"dd/MMM/yyyy")))

df.printSchema()

root
 |-- id: long (nullable = true)
 |-- date: string (nullable = true)
 |-- weekofyear: integer (nullable = true)

df.show()
Run Code Online (Sandbox Code Playgroud)

"错误"如下所示:

+---+-----------+----------+
| id|       date|weekofyear|
+---+-----------+----------+
|  1|01/JAN/2017|        52|
|  2|15/FEB/2017|         7|
+---+-----------+----------+
Run Code Online (Sandbox Code Playgroud)

week-number apache-spark pyspark pyspark-sql

3
推荐指数
1
解决办法
1474
查看次数

标签 统计

apache-spark ×1

pyspark ×1

pyspark-sql ×1

week-number ×1