将 Spark Dataframes 的每一行转换为字符串,在 Scala 中的每列值之间有一个分隔符

Ram*_*esh 2 scala apache-spark-sql

我想将 Spark Dataframe 的每一行转换为一个字符串,每列值之间有一个分隔符。

例如:我有一个输入数据框“df”,其中包含 3 列“firstname”、“lastname”、“age”,其中有两条记录,如下所示。

第 1 行:约翰·艾布拉汉姆 21 第 2 行:史蒂夫·奥斯汀 22

我想创建一个只有一列的新数据框,其中包含如下数据。
第一行:约翰$阿布拉汉姆$21 第二行:史蒂夫$奥斯汀$22

任何人都可以帮忙做这件事。

Ale*_*lec 5

我手头没有 Spark 外壳,但我认为这个衬垫应该可以:

def stringifyRows(df: DataFrame, sep: String): DataFrame 
  = df.map(row => row.mkString(sep)).toDf("myColumnName")
Run Code Online (Sandbox Code Playgroud)

对于您的示例,您可以将其称为stringifyRows(myDf, "$"). 如果这不起作用,请告诉我错误消息是什么。