首页 > 解决方案 > 读取文件火花,将具有特定值的字段设置为空或“”

问题描述

我正在阅读一个用 | 分隔的文本文件 . 有一些字段具有值 \N 。当逐行读取文件到数据帧时,有没有办法使具有值 \N 的字段为 null 或 "" 。代码如下。

val inputDf = sqlContext.read.format("csv")
      .option("header", "true")
      .option("inferSchema", "false")
      .schema(myschema)
      .option("delimiter", "|")
      .option("nullValue", "")
      .load("My Input file Path")

标签: scalaapache-sparkapache-spark-sql

解决方案


加载数据框后,以通用方式对所有列使用 when 条件

inputDf.select(inputDf.columns.map(c=> when(col(c) === “\\N”,””).otherwise(col(c)).alias(c)):_*).show

推荐阅读