连接两个数据集火花鳞



我有两个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())
  }

最新更新