Как создать несколько фреймов данных, используя один и тот же класс case - PullRequest
1 голос
/ 14 мая 2019

Как создать несколько фреймов данных, используя один и тот же класс case?Предположим, я хочу создать несколько фреймов данных, один с 5 столбцами, а другой с 3 столбцами, как я собираюсь добиться этого с помощью одного класса case?

1 Ответ

2 голосов
/ 14 мая 2019

Вы не можете создать два 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...