gpt4 book ai didi

scala - Apache 星火 : get elements of Row by name

转载 作者:行者123 更新时间:2023-12-04 02:40:36 26 4
gpt4 key购买 nike

DataFrame Apache Spark 中的对象(我正在使用 Scala 接口(interface)),如果我正在迭代它的 Row对象,有没有办法按名称提取值?我可以看到如何做一些非常尴尬的事情:

def foo(r: Row) = {
val ix = (0 until r.schema.length).map( i => r.schema(i).name -> i).toMap
val field1 = r.getString(ix("field1"))
val field2 = r.getLong(ix("field2"))
...
}
dataframe.map(foo)

我认为必须有更好的方法 - 这非常冗长,它需要创建这个额外的结构,并且还需要明确知道类型,如果不正确,将产生运行时异常而不是编译时错误。

最佳答案

您可以使用 getAs 中的“org.apache.spark.sql.Row

r.getAs("field1")
r.getAs("field2")

了解更多 getAs(java.lang.String fieldName)

关于scala - Apache 星火 : get elements of Row by name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30674376/

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