使用 Apache Spark / Spark SQL 加入文件
Posted
技术标签:
【中文标题】使用 Apache Spark / Spark SQL 加入文件【英文标题】:Join files using Apache Spark / Spark SQL 【发布时间】:2015-06-22 06:49:35 【问题描述】:我正在尝试使用 Apache Spark 根据一些公共字段比较两个不同的文件,并从两个文件中获取值并将其写入输出文件。
我正在使用 Spark SQL 来连接这两个文件(在将 RDD 存储为表之后)。
这是正确的方法吗?
我们可以在没有 Apache SQL 的情况下 compare / join
文件吗?
请在这方面给我建议。
【问题讨论】:
【参考方案1】:尝试在数据集的两个数据帧之间进行内连接以匹配记录。
【讨论】:
【参考方案2】:如果你使用普通 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。
【讨论】:
谢谢。是否可以从两个文件中仅获取必填字段而不是所有字段?我们应该使用什么转换来获得它?以上是关于使用 Apache Spark / Spark SQL 加入文件的主要内容,如果未能解决你的问题,请参考以下文章
在执行spar-sql程序中报错:java.lang.NoSuchMethodError: org.apache.spark.internal.Logging.$init$(Lorg/apache/s
关于在使用sparksql写程序是报错以及解决方案:org.apache.spark.sql.AnalysisException: Duplicate column(s): "name&qu