Scala 使用Spark将多个文件中的列转换为单个文件
我正在尝试将文件夹中多个csv文件中的数据加载到单个csv文件中。所有文件将具有不同的架构,但将具有一个公共主键 文件的示例结构如下 文件1:PK,Col1,Col2,Col3 文件2:PK,ColD,ColA,ColB,ColC 文件3:PK、A、B、C 最终的文件结构应该是这样的 PK,Col1,Col3,A,ColD,C,ColC 最后,文件将以拼花或增量格式保存 请就如何使用Spark、Scala解决此问题提出建议 添加一些示例文件内容以便更好地理解 File1 emp|u id | emp|u name | job|u name | dep|u id 68319 |凯琳|总统| 1001 66928 |火焰|经理| 3001 67832 |克莱尔|经理| 1001 65646 |乔纳斯|经理| 2001 67858 | SCARLET |分析师| 2001 文件2 emp|U id |经理|id |雇用日期| 68319 | | 1991-11-18 66928 | 68319 | 1991-05-01 67832 | 68319 | 1991-06-09 65646 | 68319 | 1991-04-02 67858 | 65646 | 1997-04-19 File3 emp_id |工资 68319 | 6000.00 66928 | 2750.00 67832 | 2550.00 65646 | 2957.00 67858 | 3100.00 最终结果 emp|u id | emp|u name |职务|姓名|经理| id |雇佣|日期|工资|部门|id 68319 |凯琳|总统| 1991-11-18 | 6000.00 | 1001 66928火焰经理68319 1991-05-01 2750.00 3001 67832 |克莱尔|经理| 68319 | 1991-06-09 | 2550.00 | 1001 65646乔纳斯经理68319 1991-04-02 2957.00 2001 67858 | SCARLET |分析师| 65646 | 1997-04-19 | 3100.00 | 2001Scala 使用Spark将多个文件中的列转换为单个文件,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我正在尝试将文件夹中多个csv文件中的数据加载到单个csv文件中。所有文件将具有不同的架构,但将具有一个公共主键 文件的示例结构如下 文件1:PK,Col1,Col2,Col3 文件2:PK,ColD,ColA,ColB,ColC 文件3:PK、A、B、C 最终的文件结构应该是这样的 PK,Col1,Col3,A,ColD,C,ColC 最后,文件将以拼花或增量格式保存 请就如何使用Spark、Scala解决此问题提出建议 添加一些示例文件内容以便更好地理解 File1 emp|u id | e
感谢QuickSilver的快速响应。但是dataframes总是从具有最大列数的文件中获取列名。无法在附加文件时从文件中获取列。
val columns = List("PK","Col1","Col3","A","ColD","C","ColC")
val newDF = spark.read.csv("File1","File2","File3").select(columns.map(col):_*)
newDf.write.parquet("/parquet.file")