Explain the difference between a PySpark DataFrame and an RDD, and why DataFrames are generally more performant.