首页 > 解决方案 > 如何将一行从 Dataframe 转换为 String

问题描述

我有一个数据框,其中仅包含一行的列名:source_column采用以下格式:

forecast_id:bigInt|period:numeric|name:char(50)|location:char(50)

我想将此值检索为一个字符串,然后在正则表达式上拆分它| 首先我尝试通过以下方式将数据帧中的行转换为字符串,以便我可以检查该行是否转换为字符串:

val sourceColDataTypes = sourceCols.select("source_columns").rdd.map(x => x.toString()).collect()

当我尝试打印:println(sourceColDataTypes)检查内容时,我发现[Ljava.lang.String;@19bbb216 我无法理解这里的错误。谁能让我知道如何正确地从数据框中获取一行并将其转换为字符串。

标签: scalaapache-spark

解决方案


你也可以试试这个:

df.show()

//Input data
//+-----------+----------+--------+--------+
//|forecast_id|period    |name    |location|
//+-----------+----------+--------+--------+
//|1000       |period1000|name1000|loc1000 |
//+-----------+----------+--------+--------+

df.map(_.mkString(",")).show(false)

//Output:
//+--------------------------------+
//|value                           |
//+--------------------------------+
//|1000,period1000,name1000,loc1000|
//+--------------------------------+        

df.rdd.map(_.mkString(",")).collect.foreach(println)

//1000,period1000,name1000,loc1000

推荐阅读