getting int()参数必须是字符串或数字,而不是“column”-apache spark

c86crjj0  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(414)

如果使用以下代码,则会出现此异常:

int() argument must be a string or a number, not 'Column'
df= df.withColumn('FY',
    F.when((df['ID'].substr(5,2).isin({'11','12'})),int(df['ID'].substr(1,4))+1).
    otherwise(int(df['ID'].substr(1,4))))

基本上,如果结果是11或12,我想在结果中加1,否则只需输入id即可。请帮助,我对python相当陌生。

iovurdzv

iovurdzv1#

用途:

df.withColumn('FY',F.when(df['ID'].substr(5,2).isin({'11','12'}),
  df['ID'].substr(1,4).cast("integer") + 1).
  otherwise(df['ID'].substr(1,4)).cast("integer"))

相关问题