scala - Spark : how to create a row with fields name

标签 scala apache-spark apache-spark-sql

我正在做一些测试,我需要创建一个行并使用字段名称获取它的值,但是从文档中我只能使用值创建一个行,这是一个示例:

val row:Row=Row("aa","bb","cc")
//when I a try to get a field :
row.getAs("aa") 
I get : fieldIndex on a Row without schema is undefined

这是我想要的:

//some way to add fields name
val row:Row=Row({aa:"aa",bb:"bb",cc:"cc"})
row.getAs("aa") //returns "aa"

除了创建数据框并从中获取行之外,我想知道是否有更好的方法

最佳答案

您可以使用定义的架构创建行:

val schema = StructType(Array(
  StructField("aa", StringType),
  StructField("bb", StringType),
  StructField("cc", StringType)
))

val row = new GenericRowWithSchema(Array("AA", "BB", "CC"), schema)

println(row.getAs[String]("aa"))

关于scala - Spark : how to create a row with fields name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57988743/

相关文章:

amazon-web-services - AWS 胶水 : How to add a column with the source filename in the output?

python-2.7 - 使用最后两列作为分区将 Spark 数据帧转换为 pyspark 中的配置单元分区创建表

scala - Deequ 检查的结果数据帧的列有何含义?

scala - 更改scala中文件的内容

scala - 如何从 Spark 中的 RDD 和数据帧中过滤?

scala - 如何使用 Scala Spark 中 withColumn 的另一列值组成列名

scala - 如何在不使用 Spark/Scala 中的 collect 方法的情况下从数据帧中读取数据

scala - 不可变对象(immutable对象)的缺点

Scala 转换为泛型类型

apache-spark - Spark 如何处理大于集群内存的数据