在将数据写入spark scala之前,将所有null替换为空格

时间:2018-01-02 10:53:24

标签: scala apache-spark spark-dataframe

这就是我用null替换所有""的方式。

val dfMainOutputFinalWithoutNull = dfMainOutputFinal.withColumn("concatenated", regexp_replace(col("concatenated"), "null", "")).withColumnRenamed("concatenated", header)

dfMainOutputFinalWithoutNull.repartition(1).write.partitionBy("DataPartition","StatementTypeCode")
  .format("csv")
  .option("nullValue", "")
  .option("delimiter", "\t")
  .option("quote", "\u0000")
  .option("header", "true")
  .option("codec", "gzip")
  .save("s3://trfsmallfffile/FinancialLineItem/output")

但我的问题是这也取代了记录中的null。 例如

在我的scipt之后的记录中找到annullment的任何地方ament

只有在找到空列时才能替换null。

2 个答案:

答案 0 :(得分:0)

尝试以下

val dfMainOutputFinalWithoutNull = dfMainOutputFinal.withColumn("concatenated", regexp_replace(col("concatenated"), "|^|null", "")).withColumnRenamed("concatenated", header)

答案 1 :(得分:0)