2016-12-30 65 views
2

刪除空行。我該怎麼做?如何從我有在RDD幾個空行,我想刪除一個Pyspark RDD

我試過以下,但它不工作。我仍然得到了空行

json_cp_rdd = xform_rdd.map(lambda (key, value): get_cp_json_with_planid(key, value)).filter(
      lambda x: x is not None).filter(
      lambda x: x is not '') 

[U '' U '',U '',U '',U '',U '',U '',U '',U '',u'',u'',u'',u'',u'', u'',u'',u'',u'',u'',u'',u'', ',u'',u'',u'',u'',u'',u'',u'', u'',u'',u'',u'',u'' u'',u'',u'',u'',u'',u'',u'',u'',u'',u'', u'',u'',u'',u'',u'',u'',u'',u'',u'',u'',u'', u'',u '',u'',u'',u'',u'',u'',u'',u'',u'',u'',u'',u'',u'',u'' ,u「,u」,u「,u」,u「,u」,u「,u」,u「,u」,u「,u」 u'',u'', u'',u'',u'',u'',u'',u'',u'',u'',u「',u」',u「 '',u'',u'',u'',u「,u」,u「,u」,u「,u」,u「,u」,u「,u」,u「,u」,u「,u」,u「,u」 '',u'','','','','','','','','','','','','''''''''''''''''''''''''''''''' ',u'',u'',u'','','','','','','','','','''''''''''''''''''' u'',u'',u'',u'',u'', u'',u'',u'',u'',u'',u「',u」', u'',u'',u'',u'',u'',u'',u'',u'',u'',u'',u'',u'',u'',u'' '',u'',u'',u'',u'',u'',u'',u'',u'', u'',u'',u'',u'', ',u'',u'',u'',u'',u'',u'',u'',u'',u'',u'', u'[{「PLAN_ID」 :「d2031aed-175f-4346-af31-9d05bfd4ea3a」, 「CostTotalInvEOPAmount」:0.0,「StoreCount」:0,「WeekEndingData」: 「2017-07-08」,「UnitTotalInvBOPQuantity」:0.0,「PriceStatus」:1 , 「UnitOnOrderQuantity」:null,「CostTotalInvBOPAmount」:0.0, 「RetailSalesAmount」:0.0,「UnitCostAmount」:0.0,「CostReceiptAmount」: 0.0,「CostSalesAmount」:0.0,「UnitSalesQuantity」:0.0,「UnitReceiptQuantity」:0.0,「UnitTotalInvEOPQuantity」:0.0, 「CostOnOrderAmount」:null }]」,U '',U '',U '',U '',U '',U '',U '',U '', U '']

+0

可以添加模式for'xform_rdd.map(lambda(key,value):get_cp_json_with_planid(key,value))'? – mrsrinivas

+0

如果可以在rdd中完成,我不確定@mrsrinivas。我可以將它轉換成DF –

+0

將問題解決後標記爲答案。 – mrsrinivas

回答

2

替換filter(lambda x: x is not '')filter(lambda x: x is not u''),結果是

5

is檢查對象標識不相等。在Python 2.x中,你可以使用!=

.filter(lambda x: x is not None).filter(lambda x: x != "") 

但習慣用法,你只能使用一個filter與身份:

.filter(lambda x: x) 
bool

或直接:

.filter(bool)