apache spark-更改Pyspark Dataframe列值


0

如何更新pyspark DataFrame 列中的所有值?

我的 DataFrame 上有以下数据。我想在“邮政编码”列的值前面附加一个“0”。

+-------+----+-----------+

结果会是

+-------+----+-----------+

2 答案


0

如果zipcode的大小不同,则可以使用lpad。

df.show(false)
// +-------+-----+-------+
// |address|state|zipcode|
// +-------+-----+-------+
// |A      |s1   |215    | <-- a bit different example.
// |D      |s2   |5468   |
// |B      |s3   |4789   |
// |E      |s4   |5102   |
// |C      |s5   |9563   |
// +-------+-----+-------+

df.withColumn("zipcode", lpad(col("zipcode"), 5, "0")).show(false)

结果是:

+-------+-----+-------+
|address|state|zipcode|
+-------+-----+-------+
|A      |s1   |00215  |
|D      |s2   |05468  |
|B      |s3   |04789  |
|E      |s4   |05102  |
|C      |s5   |09563  |
+-------+-----+-------+

0
>>> from pyspark.sql.functions import *
>>> df.withColumn("zipcode", concat(lit(0), col("zipcode"))).show()
+-------+-----+-------+
|address|state|zipcode|
+-------+-----+-------+
|      A|   s1|  00215|
|      D|   s2|  05468|
|      B|   s3|  04789|
|      E|   s4|  05102|
|      C|   s5|  09563|
+-------+-----+-------+

我来回答

写文章

提问题

面试题