【问题标题】:How to remove empty rows from an Pyspark RDD如何从 Pyspark RDD 中删除空行
【发布时间】:2017-05-14 11:58:13
【问题描述】:

我想要删除的 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'',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”:空,“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'', 你'']

【问题讨论】:

  • 您可以为xform_rdd.map(lambda (key, value): get_cp_json_with_planid(key, value)) 添加架构吗?
  • 我不确定@mrsrinivas 是否可以在 rdd 中完成。我可以在稍后将其转换为 DF 时做到这一点
  • 将您的答案标记为问题已解决。
  • 看来我不能接受 2 天前解决的问题
  • 好的。两天后接受一次。

标签: python apache-spark pyspark rdd


【解决方案1】:

filter(lambda x: x is not '') 替换为 filter(lambda x: x is not u'') 并且成功了

【讨论】:

    【解决方案2】:

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

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

    但习惯上你只能使用一个带有身份的filter

    .filter(lambda x: x)
    

    或直接与bool:

    .filter(bool)
    

    【讨论】:

      猜你喜欢
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 2021-09-08
      • 2015-03-15
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多