我有数千个 CSV 文件,它们在单个目录下具有相似但不相同的标题。结构如下:
路径/到/文件/unique_parent_directory/*.csv
一个 csv 文件可以是:
|列_A|列_B|列_C|列_D|
|V1 |V2 |V3 |V4 |
第二个 CSV 文件可以是:
|Coulmn_A|Coulmn_B|Coulmn_E|Coulmn_F|
|V5 |V6 |V7 |V8 |
我想要创建的结果是一个 Spark Dataframe,它可以正确合并文件而不重叠列,上一个示例的输出应该是这样的:
|列_A|列_B|列_C|列_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)
Run Code Online (Sandbox Code Playgroud)
但我得到以下结果:
|列_A|列_B|列_C|列_D|
|V1 |V2 |V3 |V4 |
|V5 |V6 |V7 |V8 |
有没有办法在不运行标题统一过程的情况下获得所需的数据帧?
我正在尝试在 AWS Glue 中聚合数据帧。我使用以下 pySpark 代码来执行聚合:
mydataframe.groupby('id').agg({'value', 'operation'})
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法在 AWS Glue 中执行聚合?
谢谢!