PYSPARK如何在多行语句中使用除法时创建的变量

ee7vknir  于 2022-11-21  发布在  Spark
关注(0)|答案(1)|浏览(134)

我在pyspark中写了一个多行语句。我有一个 Dataframe “current”,我已经按“major”对它进行了分组,并创建了一个名为“n_students”的新列来计算每个专业的学生数。然后,我想创建另一个名为prop的新列,在该列中,我用每个专业的n_students数除以学生总数。学生总数包含在变量current_中学生。当前学生的总数是2055。您可以在语句中看到,我刚才使用了数字2055作为分母。如何将分母更改为变量current_students中的计数?
第一个
我想得到这个确切的输出,但我不想使用数字2055作为分母,而是想从变量current_students中提取数字。
第一次

63lcw9qa

63lcw9qa1#

使用python的string format()方法输入字符串中的任何变量值。

current_students = current.count()

func.expr('ROUND(n_students/{0}, 4) AS prop'.format(current_students))
# Column<'ROUND((n_students / 2055), 4) AS `prop`'>

您还可以使用本机func.colfunc.lit来代替expr

func.round(('n_students' / func.lit(current_students)), 4).alias('prop')
# Column<'round((n_students / 2055), 4) AS `prop`'>

相关问题