【发布时间】:2021-07-13 08:07:46
【问题描述】:
我正在使用 Kaggle 上的 IBM 损耗数据集。我想要做的是将分类变量的出现次数计数到Attrition == 'Yes' 和Attrition == 'No',并采用简单的比率来查看哪个级别的分类变量更有可能减少。现在我可以在 Pandas 中执行此操作,如下所示:
def cal_ratio(x):
n_1 = sum(x['Attrition'].values == 'Yes')
n_0 = sum(x['Attrition'].values == 'No')
return n_1/n_0
或者我可以很容易地编写一个 spark.sql 查询来完成它,然后为我想要比较的每个分类变量重新编写它。像 Pandas 这样的功能会让我的生活更轻松,但我找不到任何关于如何创建这种 UDF 或如何注册它的真正指导。
编辑:如果我还问这在 pyspark 中如何使用 UDF 可能会有所帮助?
b = data.groupby('BusinessTravel').apply(cal_ratio)
【问题讨论】:
标签: python-3.x pyspark apache-spark-sql user-defined-functions