从多个文件读取Spark数据帧

2024-07-25 07:07:48 发布

您现在位置:Python中文网/ 问答频道 /正文

假设您有两个s3存储桶,希望从中读取spark数据帧。对于spark数据帧中的一个文件读取,如下所示:

file_1 = ("s3://loc1/")
df = spark.read.option("MergeSchema","True").load(file_1) 

如果我们有两个文件:

 file_1 = ("s3://loc1/")
 file_2 = ("s3://loc2/")

我们如何在spark数据框中读取数据?有没有办法合并这两个文件位置


Tags: 文件数据truedfreads3load读取数据
1条回答
网友
1楼 · 发布于 2024-07-25 07:07:48

正如前面的注释所述,您可以分别读入每个注释,然后执行union函数

另一个选择是尝试Spark RDD API,然后将其转换为数据帧。例如:

sc = spark.sparkContext

raw_data_RDD = sc.textfile(<dir1> , <dir2>, ...)

对于嵌套目录,可以使用通配符(*)。现在你必须考虑的是,两个位置的模式是否相等。在转换到数据帧之前,您可能需要进行一些预处理。设置模式后,您只需执行以下操作:

raw_df = spark.createDataFrame(raw_data_RDD, schema=<schema>)

相关问题 更多 >