【问题标题】:spark.read. reading empty string as null when data is read from part filespark.read。从零件文件中读取数据时,将空字符串读取为 null
【发布时间】:2021-11-11 18:21:15
【问题描述】:

让我们考虑包含以下数据的 csv 文件

身份证、工作、年份

1,,2000

CSV 阅读器代码:

var inputDFRdd = spark.emptyDataFrame.rdd
inputDFRdd = spark.read.format("com.databricks.spark.csv")
        .option("mode", "FAILFAST")
        .option("delimiter", ",")
        .option("header", "false")
        .option("inferSchema", "false")
        .option("escape", "\"").load().rdd.zipWithIndex()
        .map(line => Row.fromSeq(Seq(line._2 + 1) ++ line._1.toSeq))

使用上述代码从传入文件中读取文件,数据框将空字符串读取为空字符串,但同样用于从部分文件中读取数据时,数据框将空字符串读取为null。

寻找一种从零件文件中将空字符串读取为空字符串的方法。

【问题讨论】:

    标签: dataframe csv apache-spark


    【解决方案1】:

    默认情况下,空字符串在读取 CSV 文件时会被推断为 null。

    您可以通过使用属性来更改该行为 - nullValue

    .option("nullValue", "null") // Only the string with value 'null' will be inferred as null.
    

    【讨论】:

    • 感谢@mohana 的建议
    猜你喜欢
    • 1970-01-01
    • 2020-03-24
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多