繁体   English   中英

如何更新 Scala Dataframe 的单个单元格?

[英]How do update a single cell of Scala Dataframe?

这是一个示例数据框:

    var df = Seq(("Bob","Male","20"),("Jenn","Female","25")).toDF("Name","Gender","Age")

在此处输入图片说明

我想将“姓名”等于“鲍勃”的行的“年龄”列更改为 30。

    var name_to_change = "Bob"
    var new_age = 30

我该怎么办?

在 spark 中,您无法更新单个单元格。 您可以做的是更新一列。 但是使用条件你可以做你想做的。

df.withColumn("Age", when(col("Name") === name_to_change, lit(new_age)).otherwise(col("Age")))

您还可以使用 Hive Conditional Functions 并且类似于其他编程语言中的 IF 语句

IF(boolean testCondition, T valueTrue, T valueFalseOrNull)expr(expr: String)函数中。

scala> df.show(false)
+----+------+---+
|Name|Gender|Age|
+----+------+---+
|Bob |Male  |20 |
|Jenn|Female|25 |
+----+------+---+


scala> df
       .withColumn("Age",expr("if((Name ='Bob'),30,Age)"))
       .show(false)

+----+------+---+
|Name|Gender|Age|
+----+------+---+
|Bob |Male  |30 |
|Jenn|Female|25 |
+----+------+---+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM