提问人:SaadK 提问时间:6/24/2019 最后编辑:SaadK 更新时间:4/28/2021 访问量:1440
读取目录下的多个 csv 文件时创建单个架构数据帧
Create a single schema dataframe when reading multiple csv files under a directory
问:
我有数以千计的 CSV 文件,这些文件在单个目录下具有相似但不相同的标头。结构如下:
路径/到/文件/unique_parent_directory/*.csv
一个 csv 文件可以是:
|Column_A|Column_B|Column_C|Column_D|
|V1 (英语) |V2 版本 |V3 版本 |V4 版本 |
第二个 CSV 文件可以是:
|Coulmn_A|Coulmn_B|Coulmn_E|Coulmn_F|
|V5系列 |V6系列 |V7系列 |V8 系列 |
我想创建的结果是单个 Spark Dataframe,它可以正确合并文件而不会重叠列,上一个示例的输出应如下所示:
|Column_A|Column_B|Column_C|Column_D|Coulmn_E|Coulmn_F|
|V1 (英语) |V2 版本 |V3 版本 |V4 版本 |空 |空 |
|V5系列 |V6系列 |空 |空 |V7系列 |V8 系列 |
我用于创建数据帧的代码是:
val df = sparkSession.read
.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.option("mergeSchema", "true")
.load(path/to/files/unique_parent_directory/*.csv)
.persist(StorageLevel.MEMORY_AND_DISK_SER)
但我得到以下结果:
|Column_A|Column_B|Column_C|Column_D|
|V1 (英语) |V2 版本 |V3 版本 |V4 版本 |
|V5系列 |V6系列 |V7系列 |V8 系列 |
有没有办法在不运行标头统一过程的情况下获得所需的数据帧?
答: 暂无答案
评论