Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parquet 使用Spark(CSV,拼花地板)处理半不均匀的结构化文件_Parquet_Spark Csv - Fatal编程技术网

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

Parquet 使用Spark(CSV,拼花地板)处理半不均匀的结构化文件,parquet,spark-csv,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) 将丢失“第一次”

我在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)
将丢失“第一次”文件读取中不存在的所有列


我该怎么做?转换为拼花地板及其数据集功能是更好的方法吗?

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

如果偶尔手动执行一次,这可能会起作用,但考虑到将有数百个(如果不是数千个)GB大小的文件,我正在寻找一种比在只查看b列之前手动连接所有内容更平滑的方法(坚持这个例子。我不是在说手动方法。这不取决于文件大小。Spark将为您处理问题,您只需要在Spark sql w.r.t连接键中编写查询。如果您想要获得所需的结果,您需要知道文件的模式。使用Scala或python或java在Spark中编写代码构建fat jar并将其部署到您的服务器。然后执行spark提交。甚至您也可以参数化您的文件路径。