withColumn与withColumnRenamed

withColumn与withColumnRenamed

Content #

withColumnRenamed 是重命名现有的数据列,而 withColumn 则用于生成新的数据列。

如果打算把 employeesDF 当中的“gender”重命名为“sex”,就可以用 withColumnRenamed 来帮忙:

employeesDF.withColumnRenamed(“gender”, “sex”)。

withColumn 也可以充分利用 Spark SQL 提供的 Built-in Functions 来灵活地生成数据。

比如,基于年龄列,我们想生成一列脱敏数据,隐去真实年龄,你就可以这样操作。

scala> employeesDF.withColumn("crypto", hash($"age")).show
+---+-------+---+------+-----------+
| id|   name|age|gender|     crypto|
+---+-------+---+------+-----------+
|  1|   John| 26|  Male|-1223696181|
|  2|   Lily| 28|Female|-1721654386|
|  3|Raymond| 30|  Male| 1796998381|
+---+-------+---+------+-----------+

我们使用内置函数 hash,生成一列名为“crypto”的新数据,数据值是对应年龄的哈希值。

Viewpoints #

From #

16 | 数据转换:如何在DataFrame之上做数据处理?