spark 从数据框中收集为 Array[T] 而不是 Array[Row]

spark collect as Array[T] and not as Array[Row] from data frame

我可以使用 RDD API 收集这样的列。

df.map(r => r.getAs[String]("column")).collect

但是,由于我最初使用的是数据集,所以我不想切换 API 级别。一个简单的 df.select("column).collect returns 和 Array[Row],其中 .flatten 运算符不再有效。 我怎样才能直接收款到Array[T e.g. String]

使用 Datasets(Spark 版本 >= 2.0.0),你只需要将 dataframe 转换为 dataset 然后收集它。

df.select("column").as[String].collect()

你会return一个数组[String]