在pyspark dataframe中获取列的唯一值并存储为新列的方法是使用distinct
函数和withColumn
函数的组合。
首先,使用distinct
函数获取列的唯一值。distinct
函数会返回一个新的dataframe,其中只包含指定列的唯一值。
然后,使用withColumn
函数将唯一值列添加到原始dataframe中作为新列。withColumn
函数接受两个参数,第一个参数是新列的名称,第二个参数是包含唯一值的dataframe列。
下面是一个示例代码:
from pyspark.sql import SparkSession
from pyspark.sql.functions import col
# 创建SparkSession
spark = SparkSession.builder.getOrCreate()
# 创建示例dataframe
data = [("Alice", 25), ("Bob", 30), ("Alice", 35), ("Bob", 40)]
df = spark.createDataFrame(data, ["Name", "Age"])
# 获取Name列的唯一值
unique_values = df.select("Name").distinct()
# 将唯一值列添加到原始dataframe中作为新列
df_with_unique_values = df.withColumn("UniqueValues", col("Name"))
# 显示结果
unique_values.show()
df_with_unique_values.show()
输出结果:
+-----+
| Name|
+-----+
|Alice|
| Bob|
+-----+
+-----+---+------------+
| Name|Age|UniqueValues|
+-----+---+------------+
|Alice| 25| Alice|
| Bob| 30| Bob|
|Alice| 35| Alice|
| Bob| 40| Bob|
+-----+---+------------+
在这个示例中,我们首先使用distinct
函数获取了Name列的唯一值,并将结果存储在unique_values
变量中。然后,使用withColumn
函数将唯一值列添加到原始dataframe中,并将新列命名为"UniqueValues"。最后,我们显示了唯一值和包含新列的dataframe的结果。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云