code: def ranking_metrics_pyspark(test, predictions, k=DEFAULT_K):
      rank_eval = SparkRankingEvaluation(
          test, predictions, k=k, relevancy_method="top_k", **COL_DICT
      )
      return {
          "MAP": rank_eval.map(),
          "nDCG@k": rank_eval.ndcg_at_k(),
          "Precision@k": rank_eval.precision_at_k(),
          "Recall@k": rank_eval.recall_at_k(),
      }
  
imports: import os
  import numpy
  import pandas
  from tempfile import TemporaryDirectory
  import surprise
  import cornac
  from recommenders.utils.timer import Timer
  from recommenders.utils.constants import COL_DICT, DEFAULT_K, DEFAULT_USER_COL, DEFAULT_ITEM_COL, DEFAULT_RATING_COL, DEFAULT_PREDICTION_COL, DEFAULT_TIMESTAMP_COL, SEED
  from recommenders.models.sar import SAR
  from recommenders.models.surprise.surprise_utils import predict, compute_ranking_predictions
  from recommenders.models.cornac.cornac_utils import predict_ranking
  from recommenders.evaluation.python_evaluation import map, ndcg_at_k, precision_at_k, recall_at_k
  from recommenders.evaluation.python_evaluation import rmse, mae, rsquared, exp_var
label_desc: Use image node_id 29 for calling a global function with example usage: ranking_metrics_pyspark(test, predictions, k) and returns: dict