当前位置: 首页 > 面试题库 >

如何使用Java中的spark在数据框中使用特定值替换空值?

方宜
2023-03-14
问题内容

我正在尝试提高使用Java在Spark中实现的Logistic回归算法的准确性。为此,我试图用该列的最频繁值替换该列中存在的Null或无效值。例如:-

Name|Place
a   |a1
a   |a2
a   |a2
    |d1
b   |a2
c   |a2
c   |
    |
d   |c1

在这种情况下,我将用“ a”替换“名称”列中的所有NULL值,用“
a2”替换“位置”列中的所有NULL值。到现在为止,我只能提取特定列中最频繁的列。您能否在第二步中帮助我,该步骤涉及如何用该列的最常用值替换空值或无效值。


问题答案:

您可以使用.na.fillfunction(它是org.apache.spark.sql.DataFrameNaFunctions中的函数)。

基本上,您需要的功能是: def fill(value: String, cols: Seq[String]): DataFrame

您可以选择列,然后选择要替换null或NaN的值。

在您的情况下,它将类似于:

val df2 = df.na.fill("a", Seq("Name"))
            .na.fill("a2", Seq("Place"))


 类似资料:
  • 我有一个包含n列的数据帧,我想用空值替换所有这些列中的空字符串。 我试过用 和 他们两个都没有工作。 如有任何线索,我们将不胜感激。谢谢

  • 我试图替换或更新dataframe中的某些特定列值,因为我们知道dataframe是不可变的,我试图转换到新的dataframe而不是更新或替换。 错误:重载方法值数组 非常感谢您的帮助!!

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

  • 我想拆分JSON格式列结果在火花数据帧: Hive中的allrules_internal表: 代码: 这里我想拆分列值。从上面的例子中,我想保留“document_id,comments”部分。换句话说,条件列有一个键/值对,但我只想要值部分。 如果表中有多行,如何拆分值。

  • 如何使用Pandas更新/组合/合并数据帧(df1)和来自另一个数据帧(df2)的值,其中df1有一个新列(col3)和来自df2的值。可乐2?换句话说,df1是当前月份的值,我希望df1也有一个来自df2的列,它是上个月的值。 任何关于这方面的见解都是值得赞赏的;非常感谢你。 DF1: DF2: 所需df:

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