我試圖做一個過濾器操作來獲取所有行,其中我的變量國家的長度小於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