当前位置: 首页 > 知识库问答 >
问题:

如何替换Spark DataFrame中特定列的多重值?

路伟
2023-03-14

我试图替换或更新dataframe中的某些特定列值,因为我们知道dataframe是不可变的,我试图转换到新的dataframe而不是更新或替换。

val new_df= df.replace("Stringcolumn", Map(array("11","17","18","10"->"12")))

错误:重载方法值数组

非常感谢您的帮助!!

共有1个答案

陆展
2023-03-14

要访问org.apache.spark.sql.dataframenafunctions,如replace,必须调用.na。所以您的代码应该如下所示,

import com.google.common.collect.ImmutableMap

df.na.replace("Stringcolumn", Map(10 -> 12, 11 -> 17))

请参阅此处以获取DataFrameNaFunctions的所有列表以及如何使用它们

 类似资料:
  • 问题内容: 如果我有清单: 然后声明另外两个列表: 我怎么可以作为指数的元素,然后设置相应的元素来,即运行后,应该是。 显然,我可以通过for循环来做到这一点: 但是还有其他方法吗?我可以以某种方式使用吗? 问题答案: 您的代码最大的问题是它不可读。Python代码规则第一,如果它不可读,没人会花足够长的时间看得出来所有有用的信息。始终使用描述性变量名。几乎没有发现代码中的错误,让我们以好名字,慢

  • 问题内容: 好的,所以我有这个yaml文件,我想替换一个字符串 与字符串 但是我不知道该怎么办。这是完整的Yaml文件 问题答案: 假设您使用的操作系统不错,并且您的YAML文档称为:

  • 它是在Android上的,在加载到WebView之前需要修复html。 这可以在JAVA内部完成还是必须在WebView的JavaScript内部完成?

  • 我在尝试用空值替换Spark数据帧特定列的值时遇到了一个问题。我有一个超过50列的数据框架,其中两列是关键列。我想用相同的模式创建一个新的数据框,新的数据框应该具有来自键列的值,而非键列中的值应该为null。我尝试了以下方法,但遇到了问题: 当我在中只有字符串类型列时,这种方法很好。但是我有一些双类型和int类型的列,这是抛出错误的,因为rdd是一个空字符串列表。 为了避免这种情况,我尝试将作为空

  • 示例:[可爱]微笑这是测试[笑哭] 目的:将这个字符串中所有中括号表示的文字替换为emoji

  • 用其他dataframe的列值替换dataframe的一列中的nan值时出现问题。下面是一个测试示例: 我想用其他dataframe中的特定值替换列名中的Nan值(如果其中有一些Nan值,则不是其他列),例如此dataframe中的Name2值: 我想得到的是: 这是此示例的测试代码: 然后我尝试了这三种方法,但都不起作用——我的数据帧始终保持Nan值。 你能告诉我哪里出错了吗?