code: def q18(lineitem, orders, customer):
      gb1 = lineitem.groupby("L_ORDERKEY", as_index=False, sort=False)[
          "L_QUANTITY"
      ].sum()
      fgb1 = gb1[gb1.L_QUANTITY > 300]
      jn1 = fgb1.merge(
          orders, left_on="L_ORDERKEY", right_on="O_ORDERKEY"
      )
      jn2 = jn1.merge(
          customer, left_on="O_CUSTKEY", right_on="C_CUSTKEY"
      )
      gb2 = jn2.groupby(
          [
              "C_NAME",
              "C_CUSTKEY",
              "O_ORDERKEY",
              "O_ORDERDATE",
              "O_TOTALPRICE",
          ],
          as_index=False,
          sort=False,
      )["L_QUANTITY"].sum()
      total = gb2.sort_values(
          ["O_TOTALPRICE", "O_ORDERDATE"], ascending=[False, True]
      )
      print(total.head(100).execute())
  
imports: import argparse
  import functools
  import time
  from typing import Callable, List, Optional, Set, Union
  import mars
  import mars.dataframe
label_desc: Use image node_id 27 for calling a global function with example usage: q18(lineitem, orders, customer) without return types