【问题标题】:How can I return a Scala Dataframe based on if else conditions?如何根据 if else 条件返回 Scala Dataframe?
【发布时间】:2023-01-24 20:06:27
【问题描述】:

我正在尝试根据 if else 条件将 DataFrame 返回/保存到新的 DataFrame 中。我已经创建了两个数据帧 df1 和 df2 并且应该根据函数中作为参数提供的 id 返回数据帧。我尝试使用 when otherwise 条件语句但它抛出错误。

我的代码:

val final_df = when(institution_id.isin("2341","9706","7801"),df1).otherwise(df2)

**错误:当我在 spark-shell 中执行这段代码时,出现以下错误 - **

Unsupported Literal type class org.apache.spark.sql.Dataset

您能否帮助我提供其他可以帮助解决此问题的替代方案或解决方案?非常感谢。

【问题讨论】:

  • 您使用 if (condition) df1 else df2 作为其他任何东西。

标签: scala apache-spark


【解决方案1】:

你写的东西没有多大意义,当你检查 when() 函数时,你正在做每行检查,所以每一行都可以对“isin”子句做出肯定或否定的回答,因此你写的内容就好像你要插入另一个数据框作为数据框字段,这在 spark 中是不可能的,你可以做的一件事是检查数据框的所有行是否满足特定条件,并且该点继续一个数据框在成功的情况下或另一个在失败的情况下使用简单的 scala if-then-else

【讨论】:

    猜你喜欢
    • 2019-12-28
    • 2021-01-09
    • 2016-03-18
    • 2020-07-30
    • 2016-09-03
    • 2021-12-08
    • 2019-03-11
    • 1970-01-01
    • 2014-03-09
    相关资源
    最近更新 更多