TypeError: 不支持的操作数类型 -: 'datetime.date' 和 'str'
Posted
技术标签:
【中文标题】TypeError: 不支持的操作数类型 -: \'datetime.date\' 和 \'str\'【英文标题】:TypeError: unsupported operand type(s) for -: 'datetime.date' and 'str'TypeError: 不支持的操作数类型 -: 'datetime.date' 和 'str' 【发布时间】:2021-12-30 16:02:23 【问题描述】:目标是从 delta 表中获取日期,如果它是昨天的日期,即未找到交易日期,那么在其他部分昨天的日期减去当前日期的日期,并在 for 循环中处理另一个笔记本需要使用 pyspark。
fromdate=spark.sql("select to_date(max(time),'yyyy-mm-dd') date from default.table")
display(x)
print("latest TransactionDate not found")
todate = datetime.date.today()
dates = todate-fromdate
错误 - TypeError:第 5 行的 -: 'datetime.date' 和 'str' 的操作数类型不受支持
请分享if else方式写的有效代码。
【问题讨论】:
fromdate
是数据框对象而不是日期时间,要将日期输入 python 变量使用 fromdate = fromdate.first().date
你好我用过这样 import datetime fromdate=spark.sql("select max(time) as latestlog from default.table") fromdate1 = fromdate.first().date get error AttributeError: date
不,我需要从我尝试过的 sql 表中获取最大日期 fromdate1 = fromdate.first().lastestlog (属性错误) & fromdate1 = fromdate.collect()[0][0] (例外:无法调用 display(试试这个。
import datetime
df=spark.sql("select to_date('2021-12-25','yyyy-MM-dd') date ")
fromdate = df.collect()[0][0]
todate = datetime.date.today()
print(fromdate)
print(todate)
days = (todate - fromdate).days
print(days)
【讨论】:
以上是关于TypeError: 不支持的操作数类型 -: 'datetime.date' 和 'str'的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:不支持的操作数类型/:'str'和'str'
TypeError: *: 'int' 和 'NoneType' 不支持的操作数类型
TypeError:&:'str'和'str'不支持的操作数类型
TypeError: 不支持的操作数类型 -: 'int' 和 'list'