我有两个CSV文件(数据集)file1和file2。
文件1包括以下列:
Orders | Requests | Book1 | Book2
Varchar| Integer | Integer| Integer
文件2包括以下列:
Book3 | Book4 | Book5 | Orders
String| String| Varchar| Varchar
如何将数据组合在Scala中的两个CSV文件中以检查:
- 多少
- 订单,book1(忽略具有值= 0的书1),book3和book4都存在于每个订单的两个文件中
- 注意:两个文件中的列订单很常见
您可以通过配对rdd加入两个CSV。
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())
}