scala - 读取文件火花,将具有特定值的字段设置为空或“”
问题描述
我正在阅读一个用 | 分隔的文本文件 . 有一些字段具有值 \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")
解决方案
加载数据框后,以通用方式对所有列使用 when 条件
inputDf.select(inputDf.columns.map(c=> when(col(c) === “\\N”,””).otherwise(col(c)).alias(c)):_*).show
推荐阅读
- json - jq:在嵌套结构中向集合深处添加字段,从同级别的其他字段计算
- python - 从 DataFrame 中解包未知对象
- javascript - 了解如何使用 npm 部署 Nuxtjs(或一般的 js)应用程序的问题
- sql - 如何通过 SQL 查询仅获取过去 3 年的前 4 个月数据?
- typescript - 我可以在单独的文件中声明 TypeScript 接口并在不导入的情况下使用它吗?
- r - 矩阵乘法而不丢失 xts 属性
- node.js - TypeError:csv.fromPath 不是函数
- r - 如何在 R 中编写分段生存模型(例如带有外推尾部的 Kaplan-Meier 曲线)
- c# - 我想在控制台应用程序中获取 k 和 k2 中书籍的价格,但代码不起作用
- node.js - 时刻js计算从现在到现在的时间差异