我有5个CSV文件,标题仅在第一个文件中。我想使用spark读取并创建一个数据帧。我下面的代码可以工作,但是,使用此方法会丢失4行数据,因为在最终读取时,头被设置为true。如果我将头设置为false,我将返回4行数据,但我也将第一个文件的实际头设置为数据中的一行
有没有一种更有效的方法来实现这一点,使标题不会在我的数据集中显示为一行
header = spark.read \
.format("csv") \
.option("header", "true") \
.option("inferSchema", "true") \
.load("path/file-1")
schema = header.schema
df = spark.read \
.format("csv") \
.option("header", "true") \
.schema(schema) \
.load("path")
不幸的是,我不认为有一个简单的方法来做你想要的。不过,有一种解决方法看起来与您所做的类似。您可以读取第一个文件以获取模式,读取所有文件,但使用
option("header", "false")
读取第一个文件,然后将第一个文件与其余文件合并在python中,它将如下所示:
相关问题 更多 >
编程相关推荐