我是Pyspark编程的新手。我需要些帮助。
我有一个带有分类特征的数据集和一些与之相关的数值。我想对分类值进行矢量化,包括与之相关的数值。我有大约300万个分类数据列的可能值。

发布于 2021-01-22 15:14:52
您可以按数量分组,并将UserID列聚合到一个数组中:
import pyspark.sql.functions as F
df2 = df.groupBy('UserID').agg(F.collect_list('Quantity').alias('Quantity'))但这可能不能保证水果的顺序保持正确。要实现这一点,您可以使用涉及排序的更复杂的方法:
df2 = df.groupBy('UserID').agg(
F.expr("transform(array_sort(collect_list(array(`Fruit Purchased`, Quantity))), x -> x[1]) Quantity")
)或者你也可以做一个轴心,这也可以确保水果的顺序:
df2 = df.groupBy('UserID').pivot('Fruit Purchased').agg(F.first('Quantity'))
df3 = df2.select('UserID', F.array([c for c in df2.columns[1:]]).alias('Quantity'))https://stackoverflow.com/questions/65837384
复制相似问题