使用 Apache Spark / Spark 加入文件 SQL

Join files using Apache Spark / Spark SQL

我正在尝试使用 Apache Spark 根据某些公共字段比较两个不同的文件,并从两个文件中获取值并将其写入输出文件。

我正在使用 Spark SQL 连接两个文件(在将 RDD 存储为 table 之后)。

这是正确的做法吗?

我们可以 compare / join 没有 Apache SQL 的文件吗?

请给我建议。

如果你使用 plain spark,你可以连接两个 RDD。

let a = RDD<Tuple2<K,T>>
let b = RDD<Tuple2<K,S>>
RDD<Tuple2<K,Tuple2<S,T>>> c = a.join(b)

这会为密钥 K 的每一对生成一个 RDD。RDD 上还有 leftOuterJoin、rightOuterJoin 和 fullOuterJoin 方法。

所以你必须映射两个数据集以生成两个由你的公共键索引的 RDD,然后加入它们。这是我引用的 documentation

尝试在两个数据集的数据帧之间进行匹配记录的内部连接。