来自数组的结构类型



我需要做什么?

DataFrame创建应如下所示的架构:

root
 |-- doubleColumn: double (nullable = false)
 |-- longColumn: long (nullable = false)
 |-- col0: double (nullable = true)
 |-- col1: double (nullable = true)
...

带有前缀 col 的列的数量可能有所不同。它们的名称存储在数组ar: Array[String] 中。

我的尝试

val schema = StructType(
    StructField("doubleColumn", DoubleType, false) ::
    StructField("longColumn", LongType, false) ::
    ar.map(item => StructField(item, DoubleType, true)) // how to reduce it?
    Nil
)

我对注释行(4(有问题,我不知道如何传递这个数组。

没有必要减少任何东西。您可以只插入已知列的列表:val

val schema = StructType(Seq(
    StructField("doubleColumn", DoubleType, false),
    StructField("longColumn", LongType, false)
  ) ++ ar.map(item => StructField(item, DoubleType, true))
)

您可能还

ar.foldLeft(StructType(Seq(
  StructField("doubleColumn", DoubleType, false), 
  StructField("longColumn", LongType, false)
)))((acc, name) => acc.add(name, DoubleType, true))

相关内容

  • 没有找到相关文章

最新更新