Объединение двух наборов данных искры скала
У меня есть два файла 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())
}