小编ATi*_*our的帖子

如何在 Spark 3.0+ 中获取一年中的第几周?

我正在尝试创建一个包含日、月等列的日历文件。以下代码工作正常,但我找不到一种干净的方法来提取一年中的星期(1-52)。在 中spark 3.0+,以下代码行不起作用:.withColumn("week_of_year", date_format(col("day_id"), "W"))

我知道我可以创建一个视图/表,然后对其运行 SQL 查询来提取week_of_year,但有没有更好的方法来做到这一点?`

df.withColumn("day_id", to_date(col("day_id"), date_fmt))
.withColumn("week_day", date_format(col("day_id"), "EEEE"))
.withColumn("month_of_year", date_format(col("day_id"), "M"))
.withColumn("year", date_format(col("day_id"), "y"))
.withColumn("day_of_month", date_format(col("day_id"), "d"))
.withColumn("quarter_of_year", date_format(col("day_id"), "Q"))
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql

5
推荐指数
1
解决办法
8713
查看次数

如何将看起来像列表的字符串转换为浮点数列表?

我有这个清单:

s = '[ 0.00889175 -0.04808848  0.06218296 0.06312469 -0.00700571\n -0.08287739]'
Run Code Online (Sandbox Code Playgroud)

它包含一个'\n'字符,我想将其转换为这样的列表float

l = [0.00889175, -0.04808848, 0.06218296, 0.06312469, -0.00700571, -0.08287739]
Run Code Online (Sandbox Code Playgroud)

我尝试了这段代码,它接近我想要的代码:

l = [x.replace('\n','').strip(' []') for x in s.split(',')]
Run Code Online (Sandbox Code Playgroud)

但是它仍然保留我没有设法删除的引号(我尝试过str.replace("'","")但没有用),这就是我得到的:

['0.00889175 -0.04808848  0.06218296 0.06312469 -0.00700571 -0.08287739']
Run Code Online (Sandbox Code Playgroud)

string list python-3.x

-1
推荐指数
1
解决办法
50
查看次数