我在HDFS中有一个文本文件,其中包含我想要作为String列表读取的ID列表。当我这样做时
spark.read.text(filePath).collect.toList
我得到了一个List [org.apache.spark.sql.Row]。如何将此文件读入字符串列表?
答案 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