Apache Spark:Cassandra 阅读:如何在写入文件时忽略或替换“\n”字符

Apache Spark : Cassandra Read : How to Ignore or replace '\n' character while writing to a file

我的 cassandra 中有一些列条目(字符串),其中包含 '\n',例如:

(id,name,age) values(1,'abc\nxyz',28)

现在我正在使用 spark 将我的行写入 csv 文件,但 spark 将 '\n' 字符作为新行

val cass= spark.read.format("org.apache.spark.sql.cassandra").option("keyspace","mykeyspace").option("table","mytable").load

cass.write.csv("abc.csv")

id|name|age
1|abc
xyz|28
2|gfgdd|32 

有什么方法可以在写入时忽略或用空白 space 替换 '\n',这样输出将是

id|name|age
1|abcxyz or abc xyz|28
2|gfgdd|32

只需使用 functions.regexp_replace 将下一行字符替换为 space,如下所示

import org.apache.spark.sql.functions

object ReplaceNextLine {


  def main(args: Array[String]): Unit = {

    val spark = Constant.getSparkSess

    import spark.implicits._
    val df = List((1,"anc\nxyz",28)).toDF("id","name","age").toDF
        .withColumn("name",functions.regexp_replace(functions.col("name"),"\n"," "))

    df.show()

  }

}