Since the depletion of fossil fuels, the world has started to rely heavily on renewable sources of energy. With every passing year, our dependency on the renewable sources of energy is increasing exponentially. As a result, complex and hybrid generation systems are being designed and developed to meet the energy demands and ensure energy security in a country. The continual improvement in the technology and an effort towards the provision of uninterrupted power to the end-users is strongly dependent on an effective and fault resilient Operation and Maintenance (O&M) system. Ingenious algorithms and techniques are hence been introduced aiming to minimize equipment and plant downtime. Efforts are being made to develop robust Prognostic Maintenance systems that can identify the faults before they occur. To this aim, complex Data Analytics and Machine Learning (ML) techniques are being used to increase the overall efficiency of these prognostic maintenance systems. This paper provides an overview of the predictive/prognostic maintenance frameworks reported in the literature. We pay a particular focus to the approaches, challenges including data-related issues, such as the availability and quality of the data and data auditing, feature engineering, interpretability, and security issues. Being a key aspect of ML-based solutions, we also discuss some of the commonly used publicly available datasets in the domain. The paper also identifies key future research directions. We believe such detailed analysis will provide a baseline for future research in the domain.