gpt4 book ai didi

apache-spark - 如何在 Spark 中检索 DataFrame 的别名

转载 作者:行者123 更新时间:2023-12-03 23:38:16 27 4
gpt4 key购买 nike

我使用的是 Spark 2.0.2。我有一个带有别名的 DataFrame,我希望能够检索它。下面是我想要的一个简化示例。

def check(ds: DataFrame) = {
assert(ds.count > 0, s"${df.getAlias} has zero rows!")
}

上面的代码当然会失败,因为DataFrame没有getAlias函数。有没有办法做到这一点?

最佳答案

你可以尝试这样的事情,但我不会说它受支持:

  • Spark <2.1:

    import org.apache.spark.sql.catalyst.plans.logical.SubqueryAlias
    import org.apache.spark.sql.Dataset

    def getAlias(ds: Dataset[_]) = ds.queryExecution.analyzed match {
    case SubqueryAlias(alias, _) => Some(alias)
    case _ => None
    }
  • Spark 2.1+:

    def getAlias(ds: Dataset[_]) = ds.queryExecution.analyzed match {
    case SubqueryAlias(alias, _, _) => Some(alias)
    case _ => None
    }

示例用法:

val plain = Seq((1, "foo")).toDF
getAlias(plain)
Option[String] = None
val aliased = plain.alias("a dataset")
getAlias(aliased)
Option[String] = Some(a dataset)

关于apache-spark - 如何在 Spark 中检索 DataFrame 的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41249806/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com