Объединение двух наборов данных искры скала

У меня есть два файла CSV (наборы данных) file1 и file2.

Файл1 состоит из следующих столбцов:

Orders | Requests | Book1  | Book2
Varchar| Integer  | Integer| Integer

Файл2 состоит из следующих столбцов:

Book3 | Book4 | Book5  | Orders
String| String| Varchar| Varchar

Как объединить данные в два CSV-файла в Scala для проверки:

  • Как много
    • Заказы, Book1 (игнорировать Book1 со значением = 0), Book3 и Book4 присутствуют в обоих файлах для каждого заказа
    • Примечание: колонка Orders является общей в обоих файлах

1 ответ

Вы можете присоединиться к двум CSV, сделав пару RDD.

  val rightFile = job.patch.get.file
  val rightFileByKeys = sc.textFile(rightFile).map { line =>
    new LineParser(line, job.patch.get.patchKeyIndex, job.delimRegex, Some(job.patch.get.patchValueIndex))
  }.keyBy(_.getKey())

  val leftFileByKeys = sc.textFile(leftFile).map { line =>
    new LineParser(line, job.patch.get.fileKeyIndex, job.delimRegex)
  }.keyBy(_.getKey())

  leftFileByKeys.join(rightFileByKeys).map { case (key, (left, right)) =>
    (job, left.line + job.delim + right.getValue())
  }
Другие вопросы по тегам