code: def test_sparkxshards_with_inbalanced_data(self):
      train_data_shard = XShards.partition(
          {
              "x": np.random.randn(100, 1),
              "y": np.random.randint(0, 1, size=(100)),
          }
      )
  
      def random_pad(data):
          import numpy as np
          import random
  
          times = random.randint(1, 10)
          data["x"] = np.concatenate([data["x"]] * times)
          data["y"] = np.concatenate([data["y"]] * times)
          return data
  
      train_data_shard = train_data_shard.transform_shard(random_pad)
  
      config = {"lr": 0.8}
      trainer = Estimator.from_keras(
          model_creator=model_creator,
          verbose=True,
          config=config,
          workers_per_node=2,
      )
  
      trainer.fit(
          train_data_shard, epochs=1, batch_size=4, steps_per_epoch=25
      )
      trainer.evaluate(train_data_shard, batch_size=4, num_steps=25)
  
imports: import shutil
  from unittest import TestCase
  import numpy
  import pytest
  import tensorflow
  from zoo import init_nncontext
  from zoo.orca.data import XShards
  import zoo.orca.data.pandas
  from zoo.orca.learn.tf2 import Estimator
  from zoo.ray import RayContext
  import ray
  import os
label_desc: Use image node_id 15 for calling the TestTFRayEstimator obj's underlying member method code with example usage: obj.test_sparkxshards_with_inbalanced_data() and returns: data