如何从DataFrame中获取列表[String]

时间:2018-03-28 20:21:26

标签: scala apache-spark

我在HDFS中有一个文本文件,其中包含我想要作为String列表读取的ID列表。当我这样做时

spark.read.text(filePath).collect.toList 

我得到了一个List [org.apache.spark.sql.Row]。如何将此文件读入字符串列表?

2 个答案:

答案 0 :(得分:3)

如果您使用spark.read.textFile(filepath),则会获得DataSet[String]而不是DataFrame(又名DataSet[Row])。然后,当您收集时,您将获得Array[String]而不是Array[Row]

您还可以使用DataFrame将带有单个字符串列的DataSet[String]转换为df.as[String]。因此df.as[String].collect将从Array[String]获得DataFrame(假设DataFrame包含单个字符串列,否则会失败)

答案 1 :(得分:2)

使用map(_.getString(0))从Row对象中提取值:

spark.read.text(filePath).map(_.getString(0)).collect.toList