我正在尝试进行过滤操作以获取变量country的长度小于4的所有行,无论我做什么,我都会遇到错误。
这是当前代码(使用Python API)
uniqueRegions = sqlContext.sql("SELECT country, city FROM df")
uniqueRegions = uniqueRegions.rdd
uniqueRegions = uniqueRegions.distinct()
uniqueRegions = uniqueRegions.filter(lambda line: len(line.country) < 4)
这是错误
TypeError: object of type 'NoneType' has no len()
第一行(使用rdd.first
完成):
Row(country=u'xxxxxx', city=u'xxxxxx')
有关如何解决此问题的任何建议? 感谢。
答案 0 :(得分:1)
您有一个国家/地区为NULL的数据库记录。这个长度没有意义。如果没有国家设定,该怎么办?
也许你想过滤记录? SELECT country, city FROM df WHERE country IS NOT NULL
?或者可能是lambda l: l.country is not None and len(l.country) < 4
,或者取决于您的逻辑lambda l: l.country is None or len(l.country) < 4
。