Вы не можете создать два Dataframe, используя один класс case с одинаковым количеством столбцов напрямую.Предположим, у вас есть следующий класс case FlightData
.Если вы создали Dataframe из этого класса, он будет содержать 3 столбца.Тем не менее, вы можете создать два Dataframe, но в следующем вы можете выбрать некоторые столбцы из этого класса case.Если у вас два разных файла и каждый файл имеет разную структуру, вам нужно создать два отдельных класса case.
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)