【问题标题】:Read in an excel file as a csv in pyspark在 pyspark 中以 csv 格式读取 excel 文件
【发布时间】:2019-11-26 20:34:05
【问题描述】:

这里是第一个问题,所以如果有不清楚的地方,我很抱歉。 我是 pySpark 的新手,我尝试使用 databricks 读取保存为 csv 的 excel 文件,并使用以下代码

df = spark.read.csv('/FileStore/tables/file.csv', sep = ";", inferSchema = "true", header = "true")

这工作正常,除了一些观察得到空值,而在 excel 文件中没有空值。实际值可以在其他行中找到。 也许用一个例子更好地解释: 如果excel文件有A B C D行 然后它变成了表格(对于某些行):

A B null null C D null null

我的问题是如何解决这个问题?提前致谢

【问题讨论】:

  • 有多少列?如果你想替换null,你可以在这里找到例子stackoverflow.com/questions/42312042/…
  • 很可能excel文件实际上在那些看起来为空的单元格中有值。应该是空间。当您随后转换为 csv 时,会保留空间,因此您会在 CSV(或 A;B; ; )中看到 A;B;;。使用 Spark 读取将正确地从空字段创建空值,参见例如Spark-17916).

标签: excel csv pyspark


【解决方案1】:

现在您将分隔符设置为 ;,但是在 CSV 文件中,分隔符通常是 ,Comma S分隔V价值)。如果您使用 spark CSV 阅读器,分隔符会自动设置为逗号:

spark.read.format("csv")
           .option("header", "true")
           .option("inferSchema", "true")
           .load("/FileStore/tables/file.csv")

【讨论】:

  • 您假设 Ndw 选择的分隔符是错误的,这似乎不太可能,因为 Ndw 说“阅读效果很好”。如果您需要此类详细信息,请在 cmets 中询问。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-14
  • 1970-01-01
  • 1970-01-01
  • 2018-06-29
  • 1970-01-01
相关资源
最近更新 更多