【问题标题】:Incorrect Dataframe from spark.read.format('csv')来自 spark.read.format('csv') 的数据帧不正确
【发布时间】:2020-08-08 18:09:57
【问题描述】:

我正在使用以下内容在 pyspark 中读取 csv 文件作为数据帧

DF=spark.read.format('csv').option("header", "true").load("data.csv")

它适用于大多数文件,但我遇到了一些错误。

预期的数据帧

 id    name    code    remarks                 code2       code3
1001   abc     123     1. this is remark 1     12            1
                       2. this is remark 2
1002   def     234     no remarks              23            2

错误的数据框

 id                    name    code    remarks               code2        code3
1001                   abc     123     1.this is remark 1     null         null
2.this is remark 2     12       1      null                   null         null
1002                   def     234     no remarks             23             2

请注意,原始数据有很多列。所以我想避免提供自定义模式。如果我在 MS Excel 中打开文件,则没有此问题。

如何解决此问题以获得预期的数据帧?

【问题讨论】:

  • 这只是数据框实际内容的显示问题,不是这样的。不用担心。检查数据帧计数,它应该等于 2

标签: csv apache-spark pyspark apache-spark-sql


【解决方案1】:

这是每个人在使用类似直线的工具时都会遇到的常见问题。

但实际数据帧不受影响。您可以通过 df.count() == 2 而不是 3 进行检查。

你可以试试这个

选择 id, name, code, regexp_replace(remarks, '\\n', ""), code2, 代码 3 来自 ;

这将内联数据。

希望对你有帮助!!!

【讨论】:

  • 我检查了计数,它似乎不一样。而且当我在这个df的'id'上使用JOIN和另一个df的'id'时,它会将这些额外的备注行显示为备注有多行的所有行的'id'值
猜你喜欢
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多