pyspark 数据框中的自定义排序

Dav*_*eed 7 python pandas apache-spark apache-spark-sql pyspark

是否有推荐的方法在 pyspark 中实现分类数据的自定义排序?我理想地寻找 pandas 分类数据类型提供的功能。

因此,给定一个带有Speed列的数据集,可能的选项是["Super Fast", "Fast", "Medium", "Slow"]。我想实现适合上下文的自定义排序。

如果我使用默认排序,类别将按字母顺序排序。Pandas 允许将列数据类型更改为分类,并且定义的一部分给出了自定义排序顺序:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Categorical.html

bla*_*hop 12

您可以使用orderBy并定义您的自定义排序when

from pyspark.sql.functions import col, when

df.orderBy(when(col("Speed") == "Super Fast", 1)
           .when(col("Speed") == "Fast", 2)
           .when(col("Speed") == "Medium", 3)
           .when(col("Speed") == "Slow", 4)
           )
Run Code Online (Sandbox Code Playgroud)