def METHOD_NAME(self, log: AnyDataFrame) -> SplitterReturnType:
    """
    Splits input DataFrame into train and test
    :param log: input DataFrame ``[timestamp, user_id, item_id, relevance]``
    :returns: `train` and `test` DataFrame
    """
    train, test = self._core_split(convert2spark(log))  # type: ignore
    train.cache()
    train.count()
    test = self._drop_cold_items_and_users(
        train, test, self.drop_cold_items, self.drop_cold_users, self.user_col, self.item_col
    )
    test = self._filter_zero_relevance(test).cache()
    test.count()
    return train, test