【问题标题】:Apache Spark : Cassandra Read : How to Ignore or replace '\n' character while writing to a fileApache Spark : Cassandra Read : How to Ignore or replace '\n' character while writing to a file
【发布时间】:2020-09-27 08:38:36
【问题描述】:

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

(id,name,age) 值(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 

有什么方法可以在写作时忽略或用空格替换'\n',这样输出就会是

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

【问题讨论】:

    标签: apache-spark cassandra spark-cassandra-connector


    【解决方案1】:

    只需使用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()
    
      }
    
    }
    
    

    【讨论】:

      猜你喜欢
      • 2022-12-26
      • 1970-01-01
      • 2022-12-02
      • 2022-12-26
      • 2022-08-27
      • 2022-12-01
      • 2022-12-02
      • 2022-12-02
      • 2022-05-17
      相关资源
      最近更新 更多