【发布时间】:2018-01-21 22:59:54
【问题描述】:
我有两个具有相同架构的镶木地板文件。我想在 Spark java 中使用 Dataframe 将第二个文件与第一个文件合并,而没有任何重复的数据。如何做到这一点?
提前致谢。
【问题讨论】:
标签: java apache-spark spark-dataframe parquet
我有两个具有相同架构的镶木地板文件。我想在 Spark java 中使用 Dataframe 将第二个文件与第一个文件合并,而没有任何重复的数据。如何做到这一点?
提前致谢。
【问题讨论】:
标签: java apache-spark spark-dataframe parquet
首先,将您的两个 parquet 文件读入数据帧:
Dataset<Row> df1 = spark.read.parquet("dataset1.parquet");
Dataset<Row> df2 = spark.read.parquet("dataset2.parquet");
然后,使用 unionAll (Spark 1.X) 或 union (Spark 2.X) 将第二个 df 与第一个合并。最后,由于这个函数会保持重复,所以使用distinct:
Dataset<Row> df_merged = df1.union(df2).distinct();
【讨论】:
创建数据框并使用等值连接
val output = df1.join(df2,Seq("id"),joinType="Inner")
【讨论】: