code: def test_grouped_without_group_by_clause(self):
      @pandas_udf("double", PandasUDFType.GROUPED_AGG)
      def max_udf(v):
          return v.max()
  
      df = self.spark.range(0, 100)
      self.spark.udf.register("max_udf", max_udf)
  
      with self.tempView("table"):
          df.createTempView("table")
  
          agg1 = df.agg(max_udf(df["id"]))
          agg2 = self.spark.sql("select max_udf(id) from table")
          assert_frame_equal(agg1.toPandas(), agg2.toPandas())
  
imports: import unittest
  from typing import cast
  from pyspark.rdd import PythonEvalType
  from pyspark.sql import Row
  from pyspark.sql.functions import array, explode, col, lit, mean, sum, udf, pandas_udf, PandasUDFType
  from pyspark.sql.types import ArrayType, YearMonthIntervalType
  from pyspark.errors import AnalysisException, PySparkNotImplementedError, PythonException
  from pyspark.testing.sqlutils import ReusedSQLTestCase, have_pandas, have_pyarrow, pandas_requirement_message, pyarrow_requirement_message
  from pyspark.testing.utils import QuietTest, assertDataFrameEqual
label_desc: Use image node_id 23 for calling the GroupedAggPandasUDFTestsMixin obj's underlying member method code with example usage: obj.test_grouped_without_group_by_clause() and returns: v