【问题标题】:Compare 2 spark dataframes in Java using new column to print the result使用新列比较 Java 中的 2 个 spark 数据帧以打印结果
【发布时间】:2021-10-02 16:43:20
【问题描述】:

我正在使用 Apache Spark,我正在尝试使用 JAVA 比较两个 json 文件。我有两个数据框 1) 预期数据和 2) 实际数据。

预期数据 - table_1

实际数据 - table_2

区别

我需要它来比较每一列以 精确 并获取 预期数据帧 并包含另一个名为 'result' 的列,它给出通过或失败。 例如差异是 emp_id 4。因此,该列将如下所示;通过,通过,通过,失败。

谁能帮帮我

【问题讨论】:

    标签: json dataframe apache-spark apache-spark-sql


    【解决方案1】:

    假设两个数据框具有完全相同的列名称,您可以通过将这两个数据框的所有列连接起来来比较它们。

    val allColumns = dataframe1.columns.toSeq
    
    val diffDf = dataframe1.join(dataframe2, allColumns)
    

    默认连接类型是内连接,因此您会在 diffDf 中收到这两个数据帧之间的所有公共行。

    如果您想在 diffDf 中接收两个数据帧之间的所有不同行,只需使用完整的外部类型,如下所示:

    val diffDf = dataframe1.join(dataframe2, allColumns, "fullouter")
    

    您可以使用连接类型来获得所需的 diffDf。

    【讨论】:

    • 使用 Java。我相信上面是Scala
    猜你喜欢
    • 2017-10-07
    • 1970-01-01
    • 2014-05-25
    • 2020-06-07
    • 2018-02-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    相关资源
    最近更新 更多