Apache spark 从数据帧以数组[T]和非数组[Row]的形式收集火花

Apache spark 从数据帧以数组[T]和非数组[Row]的形式收集火花,apache-spark,apache-spark-sql,spark-dataframe,apache-spark-dataset,Apache Spark,Apache Spark Sql,Spark Dataframe,Apache Spark Dataset,我可以使用RDDAPI收集这样的列 df.map(r => r.getAs[String]("column")).collect 然而,由于我最初使用的是数据集,所以我不希望切换API级别。一个简单的df.select(“column).collect返回一个数组[行],其中.flatten操作符不再工作。 如何直接收集到数组[T例如字符串]?对于数据集(Spark版本>=2.0.0),您只需将数据帧转换为数据集,然后收集它 df.select("column").as[String].

我可以使用RDDAPI收集这样的列

df.map(r => r.getAs[String]("column")).collect
然而,由于我最初使用的是数据集,所以我不希望切换API级别。一个简单的
df.select(“column).collect
返回一个
数组[行]
,其中
.flatten
操作符不再工作。 如何直接收集到
数组[T例如字符串]

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

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

将返回一个数组[String]

是否尝试了
df.select(“column”).as[String]。collect
?从内存写入,若有效,我将发布正常答案:)所选列类型的数组,例如string.nice。那很好。但是为什么不自动从数据集的架构推断类型?@GeorgHeiler yes and not:)它是推断的,但它将是行[String],因为在select中可以放置许多列名。转换器将自动转换为字符串