spark.createDataFrame(data).toDF("name", "age")
和
spark.createDataFrame(spark.sparkContext.parallelize(data), schema)
创建df的方式有什么区别?
在 Spark 中,创建 DataFrame 的方式有多种,其中两种常见的方式是:
-
spark.createDataFrame(data).toDF("name", "age")
-
spark.createDataFrame(spark.sparkContext.parallelize(data), schema)
这两种方式的主要区别在于 数据来源 和 模式(Schema)的定义方式。下面详细分析它们的区别和适用场景。
1. spark.createDataFrame(data).toDF("name", "age")
特点
-
数据来源:
data
是一个本地集合(如Seq
或List
),Spark 会将其并行化为分布式数据集(RDD)。 -
模式推断:Spark 会自动推断数据的模式(Schema),并根据列的顺序为列命名。
-
列名指定:通过
toDF("name", "age")
显式指定列名。
示例
import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder()
.appName("DataFrame Example")
.master("local[*]")
.getOrCreate()
// 数据