code: def convert_predict_xshards_to_dataframe(
      df, pred_shards, output_cols=None
  ):
      def flatten(data):
          length = get_length(data)
  
          data = list(data.values())
  
          for i in range(length):
              # Always yield a list here
              yield filter_elem(data, i)
  
      pred_rdd = pred_shards.rdd.flatMap(flatten)
      result = convert_predict_rdd_to_dataframe(
          df, pred_rdd, output_cols
      )
      return result
  
imports: from contextlib import closing
  import socket
  import sys
  import tempfile
  import shutil
  from bigdl.dllib.utils import log4Error
  from bigdl.dllib.utils.common import callBigDlFunc
  from bigdl.dllib.utils.file_utils import get_file_list, is_local_path
  from bigdl.orca.data import SparkXShards
  from bigdl.orca.data.utils import get_size
  from bigdl.orca.data.file import put_local_dir_tree_to_remote, put_local_file_to_remote, get_remote_file_to_local, get_remote_dir_to_local
  from bigdl.dllib.utils.utils import convert_row_to_numpy
  from functools import partial
  import numpy
  from bigdl.orca.common import SafePickle
  import os
  import subprocess
  from bigdl.dllib.utils.log4Error import *
label_desc: Use image node_id 7 for calling a global function with example usage: convert_predict_xshards_to_dataframe(df, pred_shards, output_cols) and returns: result