code: def split(cls, dataset, start, end, datatype, **kwargs):
          
          objs = []
          if datatype is None:
              for d in dataset.data[start: end]:
                  objs.append(dataset.clone(d, datatype=cls.subtypes))
              return objs
          elif not dataset.data:
              return objs
          ds = cls._inner_dataset_template(dataset)
          for d in dataset.data:
              ds.data = d
              if datatype == 'array':
                  obj = ds.array(**kwargs)
              elif datatype == 'dataframe':
                  obj = ds.dframe(**kwargs)
              elif datatype == 'columns':
                  if ds.interface.datatype == 'dictionary':
                      obj = dict(ds.data)
                  else:
                      obj = ds.columns(**kwargs)
              else:
                  raise ValueError("%s datatype not support" % datatype)
              objs.append(obj)
          return objs
docs: Splits a multi-interface Dataset into regular Datasets using
          regular tabular interfaces.