首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在火星雨中度过一年中的第一天

如何在火星雨中度过一年中的第一天
EN

Stack Overflow用户
提问于 2022-02-23 12:25:10
回答 3查看 488关注 0票数 1

我有一个日期变量,需要传递给各种函数。

例如,如果变量中的日期为12/09/2021,则应返回01/01/2021

我在PySpark怎么过一年的第一天?

EN

回答 3

Stack Overflow用户

发布于 2022-02-23 12:40:18

您可以使用截断日期部分的中继函数

代码语言:javascript
运行
复制
df = spark.createDataFrame([()], [])
(
    df
    .withColumn('current_date', f.current_date())
    .withColumn("year_start", f.trunc("current_date", "year"))
    .show()
)

# Output
+------------+----------+
|current_date|year_start|
+------------+----------+
|  2022-02-23|2022-01-01|
+------------+----------+
票数 1
EN

Stack Overflow用户

发布于 2022-02-23 12:41:19

代码语言:javascript
运行
复制
x = '12/09/2021'

'01/01/' + x[-4:]
代码语言:javascript
运行
复制
output: '01/01/2021'
票数 0
EN

Stack Overflow用户

发布于 2022-02-23 12:43:36

您可以使用警棍使用日期实现这一点,因为后者返回的是Timestamp而不是Date

数据准备

代码语言:javascript
运行
复制
df = pd.DataFrame({
        'Date':['2021-01-23','2002-02-09','2009-09-19'],
})

sparkDF = sql.createDataFrame(df)

sparkDF.show()

+----------+
|      Date|
+----------+
|2021-01-23|
|2002-02-09|
|2009-09-19|
+----------+

日期: Trunc &至今

代码语言:javascript
运行
复制
sparkDF = sparkDF.withColumn('first_day_year_dt',F.to_date(F.date_trunc('year',F.col('Date')),'yyyy-MM-dd'))\
                 .withColumn('first_day_year_timestamp',F.date_trunc('year',F.col('Date')))

sparkDF.show()

+----------+-----------------+------------------------+
|      Date|first_day_year_dt|first_day_year_timestamp|
+----------+-----------------+------------------------+
|2021-01-23|       2021-01-01|     2021-01-01 00:00:00|
|2002-02-09|       2002-01-01|     2002-01-01 00:00:00|
|2009-09-19|       2009-01-01|     2009-01-01 00:00:00|
+----------+-----------------+------------------------+
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71236904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档