Gar*_*aso 1 scala dataframe spark-dataframe
我试图在数据框中逐列读取不同的值并将它们存储在序列数组中
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
}
Run Code Online (Sandbox Code Playgroud)
对colDistValues(i)的赋值不起作用并且总是导致空指针异常,为每个列分配不同值的正确语法是什么?
问候
你正试图访问空指针(你自己指定)的第i个索引,当然你会得到一个NullPointerException.您不需要Array[T]事先初始化,让返回的集合为您执行此操作:
val colDistValues: Array[Array[Any]] =
cols.map(c => df.select(c).distinct.map(x => x.get(0)).collect)
Run Code Online (Sandbox Code Playgroud)