【问题标题】:Using Filter Condition While Joining Spark Dataframes: Spark/Scala在加入 Spark 数据帧时使用过滤条件:Spark/Scala
【发布时间】:2020-09-04 10:34:43
【问题描述】:

有人可以建议我在 spark scala 中加入 2 个数据帧时如何使用过滤器。我正在尝试下面的代码。

    var name="abcd"
    var last_name="xyz"

    val df3 = df1.join(df2, df1("id") === df2("id"))
    .filter(df1("name")==='${name}').
    filter(df1("last_name")==='${last_name}')
    .drop(df1("name"))
    .drop(df2("name"))

但出现多个错误。

【问题讨论】:

    标签: scala apache-spark apache-spark-sql


    【解决方案1】:

    Spark 不像 java 的 JDBC API,我们需要在 where 条件下用单引号包裹字符串。 你能简单地尝试使用name 不带任何引号和 $ 符号的变量吗

        var name="abcd"
        var last_name="xyz"
        val df3 = df1.join(df2, df1("id") === df2("id"))
        .filter(df1("name")===name && df1("last_name")===last_name)
        .drop(df1("name"))
        .drop(df2("name"))
    

    【讨论】:

    • 是的,它适用于添加多个过滤条件我需要使用多个过滤器还是可以使用 &&?
    • 多个过滤器请使用&&
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    • 2019-11-24
    • 2021-06-06
    相关资源
    最近更新 更多