【问题标题】:pySpark replacing nulls in specific columnspySpark 替换特定列中的空值
【发布时间】:2020-06-05 10:18:02
【问题描述】:

我下面的代码有效,但是它将数据框中的所有空值替换为“nI”。我只想替换正在重命名的列的空值。我想在不硬编码任何列名的情况下做到这一点。

  df =datasetMatchedDomains

  for i in TRUE_matchedAttributeName_List.keys():
      df = df.withColumnRenamed(i,TRUE_matchedAttributeName_List[i]);

  df_final=df.na.fill('NI')
  display(df_final)
else:
  print("clean")

【问题讨论】:

    标签: python loops dataframe pyspark null


    【解决方案1】:

    您可以在 df.na 中提及您想要的列子集。你可以找到更多关于here的信息

    这是一个例子

     df = sc.parallelize([
    ("portfolio1",None ,"star1"), (None, "Lease", "star2"), ("portfolio2",None, "star3")]).toDF(["a", "b", "c"])
    
     df.show()
    
     +----------+-----+-----+
     |         a|    b|    c|
     +----------+-----+-----+
     |portfolio1| null|star1|
     |      null|Lease|star2|
     |portfolio2| null|star3|
     +----------+-----+-----+
    
    TRUE_matchedAttributeName = {'a':'a1'}
    
    subset=[]
    for i in TRUE_matchedAttributeName.keys():
       subset.append(TRUE_matchedAttributeName[i])
       df = df.withColumnRenamed(i, TRUE_matchedAttributeName[i])
    
    df.fillna('source not implemented', subset=subset).show(truncate=False)
    
    +----------------------+-----+-----+
    |a1                    |b    |c    |
    +----------------------+-----+-----+
    |portfolio1            |null |star1|
    |source not implemented|Lease|star2|
    |portfolio2            |null |star3|
    +----------------------+-----+-----+
    

    【讨论】:

    • 我不能硬编码任何列名,所以这个建议对我不起作用。我正在考虑使用 TRUE_matchedAttributeName_List[i],但在列表理解或每个 [i] 列中努力做到这一点,用“字符串”@rupesh reddy 替换空值
    • @jgtrz,我根据您的要求更新了代码。你现在可以检查一下吗?
    • 我对我的问题稍作修改。将添加广告“附加组件”@rupesh reddy
    • @jgtrz,你在你的问题中提到`我只想替换正在重命名的列的空值. You can add the columns and its rename in the dictionary TRUE_matchedAttributeName`,因此,你会看到空值被替换为'source not实施'
    • 是的。您修改后的代码有效。我在帖子中为我的问题添加了另一点。
    猜你喜欢
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    相关资源
    最近更新 更多