如何从Pyspark RDD中删除空行

时间:2016-12-30 06:47:25

标签: python apache-spark pyspark rdd

我想要删除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 '')
  

[你,'你,你',你',你',你',你',你',你',你',你',你' ',你',你',   你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你',你',   你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你',你',   你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你',你',   你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你',你',   你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你',你',   你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你',你',   你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你',你',   你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你',你',   你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你',你',   你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你',你',   你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你',你',   你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你,你',你',   你'[{“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 '']

2 个答案:

答案 0 :(得分:10)

is检查对象标识不相等。在Python 2.x中,您可以使用!=

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

但在惯用方面,您只能使用一个带有标识的filter

.filter(lambda x: x)

或直接与bool

.filter(bool)

答案 1 :(得分:3)

filter(lambda x: x is not '')替换为filter(lambda x: x is not u''),结果显示