我试图做一个过滤器操作来获取所有行,其中我的变量国家的长度小于4,并且无论我做什么都不断收到错误。Spark - 行元素的长度
这是当前代码(使用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')
任何建议关于如何解决这个问题? 谢谢。
'sqlContext.sql(“SELECT country,city FROM df WHERE len(country)<4”)''应该这样做。 – 2015-04-03 15:29:49
嗨。不幸的是,len还不支持Spark SQL,https://issues.apache.org/jira/browse/SPARK-2686 – user3276768 2015-04-03 15:33:14
'coll = uniqueRegions.distinct()。collect()'和'filter(lambda x:len (x [0])<4,coll)'可能会有所帮助。我不知道RDD有什么。 – 2015-04-03 15:47:06