code: def test_mixed_scalar_udfs_followed_by_cogrouby_apply(self):
      df = self.spark.range(0, 10).toDF("v1")
      df = df.withColumn(
          "v2", udf(lambda x: x + 1, "int")(df["v1"])
      ).withColumn("v3", pandas_udf(lambda x: x + 2, "int")(df["v1"]))
  
      result = (
          df.groupby()
          .cogroup(df.groupby())
          .applyInPandas(
              lambda x, y: pd.DataFrame(
                  [(x.sum().sum(), y.sum().sum())]
              ),
              "sum1 int, sum2 int",
          )
          .collect()
      )
  
      self.assertEqual(result[0]["sum1"], 165)
      self.assertEqual(result[0]["sum2"], 165)
  
imports: import unittest
  from typing import cast
  from pyspark.sql.functions import array, explode, col, lit, udf, pandas_udf, sum
  from pyspark.sql.types import ArrayType, DoubleType, LongType, StructType, StructField, YearMonthIntervalType, Row
  from pyspark.sql.window import Window
  from pyspark.errors import IllegalArgumentException, PythonException
  from pyspark.testing.sqlutils import ReusedSQLTestCase, have_pandas, have_pyarrow, pandas_requirement_message, pyarrow_requirement_message
  from pyspark.testing.utils import QuietTest
label_desc: Use image node_id 24 for calling the CogroupedApplyInPandasTestsMixin obj's underlying member method code with example usage: obj.test_mixed_scalar_udfs_followed_by_cogrouby_apply() without return types