Dataframe 如何在groupBy子句中计算count,其中还包括null/empty字段

Dataframe 如何在groupBy子句中计算count,其中还包括null/empty字段,dataframe,apache-spark,apache-spark-sql,Dataframe,Apache Spark,Apache Spark Sql,我正在使用spark-sql-2.4.1v和java8。 我有一个用例场景,其中我需要计算GROUPBY子句中参与的总记录。 i、 e.假设我正在与group by进行平均值计算。 我还需要在该组的记录计数 如果我将(col)计算为总计数,则平均值(col)按col(年份)分组平均值 这不考虑col的字段为空。 如何在总计数中包含空列字段?groupBy将忽略空列。要包含这些列,需要为这些空单元格赋值。这可以使用df.na.fill完成。使用此选项,您可以为这些列指定一个默认值(如果要将它们包含

我正在使用spark-sql-2.4.1v和java8。 我有一个用例场景,其中我需要计算GROUPBY子句中参与的总记录。 i、 e.假设我正在与group by进行平均值计算。 我还需要在该组的记录计数

如果我将(col)计算为总计数,则平均值(col)按col(年份)分组平均值 这不考虑col的字段为空。
如何在总计数中包含空列字段?

groupBy将忽略空列。要包含这些列,需要为这些空单元格赋值。这可以使用
df.na.fill
完成。使用此选项,您可以为这些列指定一个默认值(如果要将它们包含在平均值或总和中,则为0;如果是字符串类型的列,则为“some_sample_string”,以此类推)。执行na填充后,可以应用groupBy操作以获得所需的结果

请参阅下面的代码:

val new_df = df.na.fill(0, Seq("column_list"))
            .na.fill("sample_string", Seq("string_column_list"))
现在,您可以使用新的_df进行计算。希望这有帮助