可以告诉我如何将Spark DataFrame转换为Scala中的数组[String]。
我使用了以下内容。
x =df.select(columns.head, columns.tail: _*).collect()
上面的片段给我一个数组[row]而不是数组[string]
这应该做技巧:
df.select(columns: _*).collect.map(_.toSeq)
dataframe到array [string]
data.collect.map(_.toSeq).flatten
您也可以使用以下
data.collect.map(row=>row.getString(0))
如果您有更多列,那么最好使用最后一个
data.rdd.map(row=>row.getString(0)).collect
如果您打算按行读取数据集,则可以在数据集上使用迭代器:
Dataset<Row>csv=session.read().format("csv").option("sep",",").option("inferSchema",true).option("escape, """).option("header", true).option("multiline",true).load(users/abc/....);
for(Iterator<Row> iter = csv.toLocalIterator(); iter.hasNext();) {
String[] item = ((iter.next()).toString().split(",");
}
答案是由名为Cricket_007的用户提供的。您可以使用以下来将数组[行]转换为阵列[string]:
x =df.select(columns.head, columns.tail: _*).collect().map { row => row.toString() }
谢谢Bharath