python - 使用 pySpark 计算月末差异

标签 python apache-spark pyspark apache-spark-sql

我有一个要求,需要满足以下请求:

IF EndOfMonth(to_date(df.col1, 'DD.MM.YYYY')) >= EOM(CURRENT_DATE):
THEN "OldCustomer"
ELSE "NewCustomer"

输入数据框:

col1 (stringtype)
20190523
20200428
20130819

Current_date:从 python import datetime 获取

from datetime import date

now = date.today()

输出应该是这样的:

col1 (Stringtype)  col1_formated  customer(stringtype)
 20190523          23.05.2019     oldcustomer
 20200428          28.04.2020     newcustomer
 20130819          19.03.2013     oldcustomer

请帮忙进行eom格式编码?这真的很有帮助。

最佳答案

last_day函数就是您正在寻找的:

df.withColumn("col1_formated", date_format(to_date("col1", "yyyyMMdd"), "dd.MM.yyyy")) \
  .withColumn("customer",
              when(last_day(to_date("col1", "yyyyMMdd")) >= last_day(current_date()),
                   "OldCustomer").otherwise("NewCustomer")
             ).show()

关于python - 使用 pySpark 计算月末差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59518792/

相关文章:

python - 使用 pyspark 时 PyCharm 中的 DataFrame View

python - django manage.py createsuperuser 不接受用户名

java - 使用 Mongo-Hadoop 连接器通过 Apache Spark 更新 MongoDb 中的集合

python - 过滤窗隔板至少有 3 个 5 分钟间隙

apache-spark - 使用 pyspark 读取 Elasticsearch 失败,异常 java.lang.NoClassDefFoundError : org/apache/commons/httpclient/protocol/ProtocolSocketFactory

scala - Spark 无法计算表达式 : lag of a window expression

python - 给定开始日期和结束日期,生成中间所有周的最有效方法是什么?

Python:匹配字母数字的正则表达式不起作用?

python - int() Python 的无效文字

python - Google Drive API - 使用 blob 从 MediaFileUpload 上传