spark收集为Array [T]而不是数据帧中的Array [Row]

时间:2016-11-22 20:57:37

标签: apache-spark apache-spark-sql spark-dataframe apache-spark-dataset

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

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

但是,由于我最初使用数据集,我宁愿不切换API级别。一个简单的df.select("column).collect会返回Array[Row],其中.flatten运算符不再有效。 如何直接收集到Array[T e.g. String]

1 个答案:

答案 0 :(得分:6)

使用数据集(Spark版本> = 2.0.0),您只需将数据帧转换为数据集然后再收集它。

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

会返回一个数组[String]