Scala中的序列阵列



我正在尝试在数据框架中读取不同的值列,并将它们存储在序列

的数组中
def getColumnDistinctValues(df: DataFrame, colNames:String): Unit = {
  val cols: Array[String] = colNames.split(',')
  cols.foreach(println) // print column names
  var colDistValues: Array[Seq[Any]] = null
  for (i <- 0 until cols.length) {
    colDistValues(i) = df.select(cols(i)).distinct.map(x => x.get(0)).collect   // read distinct values from each column
}

coldistValues(i)的分配不起作用,并且始终导致null指针异常,分配每列的不同值的正确语法是什么?

问候

您正在尝试访问空指针的ITH索引(您分配了自己),当然您会得到NullPointerException。您无需事先初始化Array[T],让返回的集合为您完成:

val colDistValues: Array[Array[Any]] = 
  cols.map(c => df.select(c).distinct.map(x => x.get(0)).collect)

您将colDistValues初始化为null。

替换

var colDistValues: Array[Seq[Any]] = null

var colDistValues: Array[Seq[Any]] = Array.ofDim[Seq[Any]](cols.length)

相关内容

  • 没有找到相关文章

最新更新