如何使用相同的案例类创建多个数据框?假设我想创建多个数据框,一个有 5 列,另一个有 3 列,我将如何使用单个案例类来实现?
最佳答案
您不能直接使用具有相同列数的单个案例类创建两个 Dataframe。假设您有以下案例类 FlightData
。如果您从这个案例类创建了一个 Dataframe,它将包含 3 列。但是,您可以创建两个 Dataframe,但在下一个 Dataframe 中,您可以从此案例类中选择一些列。如果您有两个不同的文件并且每个文件包含不同的结构,您需要创建两个单独的案例类。
val someData = Seq(
Row("United States", "Romania", 15),
Row("United States", "Croatia", 1),
Row("United States", "Ireland", 344),
Row("Egypt", "United States", 15)
)
val flightDataSchema = List(
StructField("DEST_COUNTRY_NAME", StringType, true),
StructField("ORIGIN_COUNTRY_NAME", StringType, true),
StructField("count", IntegerType, true)
)
case class FlightData(DEST_COUNTRY_NAME: String, ORIGIN_COUNTRY_NAME: String, count: Int)
import spark.implicits._
val dataDS = spark.createDataFrame(
spark.sparkContext.parallelize(someData),
StructType(flightDataSchema)
).as[FlightData]
val dataDS_2 = spark.createDataFrame(
spark.sparkContext.parallelize(someData),
StructType(flightDataSchema)
).as[FlightData].select('DEST_COUNTRY_NAME)
关于scala - 如何使用相同的案例类创建多个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56123915/