apache spark:cassandra read:如何在写入文件时忽略或替换'\n'字符

t8e9dugd  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(294)

我的cassandra中有一些列条目(字符串),其中包含“\n”,例如:
(id,name,age)值(1,'\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(“.csv”)

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

是否有任何方法可以在写入时忽略“\n”或将其替换为空格,以便输出

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

o2g1uqev1#

只是使用 functions.regexp_replace 用空格替换下一行字符,如下所示

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()

  }

}

相关问题