def predict(self, *args, **kwargs):
        """
        Predict given DataFrame using the given model. Actual prediction steps will not
        be executed till an operational step is called.

        After execution, three columns will be appended to the table:

        +-------------------+--------+----------------------------------------------------+
        | Field name        | Type   | Comments                                           |
        +===================+========+====================================================+
        | prediction_result | string | field indicating the predicted label, absent if    |
        |                   |        | the model is a regression model                    |
        +-------------------+--------+----------------------------------------------------+
        | prediction_score  | double | field indicating the score value if the model is   |
        |                   |        | a classification model, or the predicted value if  |
        |                   |        | the model is a regression model.                   |
        +-------------------+--------+----------------------------------------------------+
        | prediction_detail | string | field in JSON format indicating the score for      |
        |                   |        | every class.                                       |
        +-------------------+--------+----------------------------------------------------+

        :type df: DataFrame
        :rtype: DataFrame

        :Example:

        >>> model = PmmlModel(odps.get_offline_model('model_name'))
        >>> data = DataFrame(odps.get_table('table_name'))
        >>> # prediction below will not be executed till predicted.persist is called
        >>> predicted = model.predict(data)
        >>> predicted.persist('predicted')
        """
        return super(PmmlModel, self).predict(*args, **kwargs)