Introduction
DataFrames are easier to use and faster than RDDs for working with big data. They help you write less code and get results quicker.
DataFrames are easier to use and faster than RDDs for working with big data. They help you write less code and get results quicker.
val df = spark.read.format("csv").option("header", "true").load("data.csv")
val rdd = spark.sparkContext.textFile("data.txt") val df = spark.read.text("data.txt")
df.select("name", "age").show()
rdd.map(line => line.split(",")).filter(arr => arr(2) == "USA")
This program shows how to filter data using RDD and DataFrame. DataFrame code is simpler and output is nicely formatted.
import org.apache.spark.sql.SparkSession object DataFrameVsRDD { def main(args: Array[String]): Unit = { val spark = SparkSession.builder.appName("DataFrameVsRDD").master("local").getOrCreate() val sc = spark.sparkContext // Create RDD from a list val rdd = sc.parallelize(Seq((1, "Alice", 29), (2, "Bob", 31), (3, "Cathy", 25))) // Filter RDD for age > 28 val rddFiltered = rdd.filter(_._3 > 28) println("RDD filtered results:") rddFiltered.collect().foreach(println) // Create DataFrame from the same data import spark.implicits._ val df = rdd.toDF("id", "name", "age") // Filter DataFrame for age > 28 val dfFiltered = df.filter("age > 28") println("DataFrame filtered results:") dfFiltered.show() spark.stop() } }
DataFrames use a schema to understand data types, making operations faster.
RDDs are low-level and require more code for simple tasks.
DataFrames support many built-in functions and SQL queries.
DataFrames are easier and faster for structured data.
They let you write less code and get better performance.
Use DataFrames when working with tables or SQL-like data.
val df = spark.read.json("people.json")
df.printSchema()val rdd = spark.sparkContext.parallelize(Seq((1, "Alice"), (2, "Bob"))) val df = rdd.toDF() df.show()
Pass the test and this pattern moves unknown