【问题标题】:Inserting values in row (Spark - Scala)在行中插入值(Spark - Scala)
【发布时间】:2021-03-20 22:56:26
【问题描述】:

我想创建一行(对于任何给定的 k)这样 -

对于 k =2,图形将是 [Row(1,2), Row(3,4)]

对于 k =3,图形将为 [Row(1,2,3), Row(4,5,6), Row(7,8,9)]

我是 scala 的新手,不知道如何准确地在这样的行中插入值。

 import org.apache.spark.sql.Row    
 var graph = ArrayBuffer[Row]()
    
    val k = 3
    val k2 = k * k
    
    for (a <- 1 to k2) {
        graph += Row(a)
      }

【问题讨论】:

  • 什么是Row?它是在哪里定义的?
  • 对不起,来自 Spark >>import org.apache.spark.sql.Row
  • 我认为数组也可以代替行
  • 由于Row 提供了fromSeq 方法,我将专注于创建Seq。我建议你看看 Seq 提供的tabulate 方法,你不需要任何可变性来解决这个问题,只需两个tabulate 调用。

标签: scala apache-spark


【解决方案1】:
val k = 3
val range = ArrayBuffer.range(1, k*k + 1) 
val rows = range.map(v => Row(v))
val grouped = rows.grouped(k).toBuffer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-11
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多