Разница между API DataSet и API DataFrame

Кто-нибудь может помочь мне понять разницу между API DataSet и API DataFrame с примером? Почему возникла необходимость внедрить API DataSet в Spark?