我有一个 Python 数据框final_df
,如下所示:
行具有重复ID
值。如何使用 pyspark 获得如下的单热编码输出?
我已将其转换为 spark 数据框:
spark_df = sqlContext.createDataFrame(final_df)
然后在CONCEPTS列中收集唯一值,如下所示:
types = spark_df.select("CONCEPTS").distinct().rdd.flatMap(lambda x: x).collect()
但是当我调用以下内容时:
types_expr = [F.when((F.col("CONCEPTS") == ty), 1).otherwise(0).alias(ty) for ty in types]
df = spark_df.select("ID", *types_expr)
df.show()
我得到以下信息:
与此类似的其他问题的解决方案不会为一行产生多个 1。
相关分类