在 pyspark 中以 csv 格式读取 excel 文件
Posted
技术标签:
【中文标题】在 pyspark 中以 csv 格式读取 excel 文件【英文标题】:Read in an excel file as a csv in pyspark 【发布时间】: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
,你可以在这里找到例子***.com/questions/42312042/…
很可能excel文件实际上在那些看起来为空的单元格中有值。应该是空间。当您随后转换为 csv 时,会保留空间,因此您会在 CSV(或 A;B; ;
)中看到 A;B;;
。使用 Spark 读取将正确地从空字段创建空值,参见例如Spark-17916).
【参考方案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 中询问。以上是关于在 pyspark 中以 csv 格式读取 excel 文件的主要内容,如果未能解决你的问题,请参考以下文章
从 csv 中读取 ms 中的时间戳,在 Matlab 中以科学格式显示
如何在 pyspark 数据框中读取 csv 文件时读取选定的列?