使用Spark处理半不均匀的结构化文件(CSV,Parquet)

时间:2018-06-27 07:43:00

标签: parquet spark-csv

我在Hadoop集群中存储了几个不均匀的结构化文件。这些文件包含标题行,但并非所有文件都包含相同的列。

file1.csv:

a,b,c
1,2,1

file2.csv:

a,b,d
2,2,2

我需要做的是在a列或c列中查找所有数据,然后进一步处理(可能是Spark SQL)。所以我期望像这样:

a,b,c,d
1,2,1,,
2,2,,2

只要做

spark.read.format("csv").option("header", "true").load(CSV_PATH)

将丢失在读取的“第一”文件中不存在的所有列。

我该怎么做?转换为Parquet及其数据集是否有更好的方法?

1 个答案:

答案 0 :(得分:0)

分别读取两个文件并创建两个数据框。然后在这两个w.r.t联接键之间进行内部联接,如a,b