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

标签 scala apache-spark-sql

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

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

第 1 行:John Abhraham 21 Row2:Steve Austin 22

我想创建一个只有一列的新数据框,其中包含如下数据。
第一行:约翰$亚伯拉罕$21 第 2 行:Steve$Austin$22

谁能帮忙做这件事。

最佳答案

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

def stringifyRows(df: DataFrame, sep: String): DataFrame 
  = df.map(row => row.mkString(sep)).toDf("myColumnName")

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

关于scala - 将 Spark Dataframes 的每一行转换为一个字符串,在 scala 中的每个列值之间有一个分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40352210/

相关文章:

java - 将 java lambda 谓词移植到 scala

scala - 如何在 Scala 中复制 Spark 数据框中的元素?

scala - Spark & Scala - 无法从 RDD 中过滤空值

scala - Spark提交期间如何解决DB2 java.io.CharConversionException

apache-spark - Pyspark 数据框中的 regexp_replace

dataframe - Spark 数据帧的分区数?

scala - 错误 "Combinational loop detected"

dataframe - 如何从字典创建数据框,其中每个项目都是 PySpark 中的一列

java - 将架构应用于 Java 对象的 Spark 数据集

sql - Spark SQL 中的日期和间隔加法