将Spark DataFrame转换为数组[String]



可以告诉我如何将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

相关内容

  • 没有找到相关文章

最新更新