【问题标题】:AttributeError: 'NoneType' object has no attribute 'upper' [closed]AttributeError:'NoneType'对象没有属性'upper'[关闭]
【发布时间】:2021-01-05 13:39:04
【问题描述】:

我有一个 PySpark 数据框 (df),并试图添加一个列 (capital_names),该列将是一个现有列 (names),其名称已转换为大写字母。我做了如下:

def capital(text):
    return text.upper()

udf_capital = udf(capital,StringType())

df2 = df.withColumn("capital_names",udf_capital("names"))

df2.show()

运行代码时,当我尝试显示生成的数据框时出现错误:

AttributeError: 'NoneType' object has no attribute 'upper'

但是,我检查了我的数据框的架构,并且列“名称”是 StringType,我该如何解决这个问题? 提前致谢!

【问题讨论】:

标签: python apache-spark pyspark user-defined-functions nonetype


【解决方案1】:

列中有空值。尝试在 UDF 中添加一个检查来捕捉它。

def capital(text):
    if text is not None:
        return text.upper()
    else:
        return None

【讨论】:

    猜你喜欢
    • 2015-09-24
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2019-01-01
    • 2021-12-26
    • 2019-07-23
    • 2018-05-13
    相关资源
    最近更新 更多