在Spark中,使用Pyspark,我想创建一个数据框(该路径实际上是S3中的文件夹),其中包含具有公共列和不同列的多个csv文件。 简单地说,我只想从多个具有不同标题的csv文件中获取一个数据框。
我可以有一个标题为“ raw_id,title,civility”的文件,以及另一个文件为“ raw_id,first_name,civility”的文件。
这是我在python 3中的代码:
df = spark.read.load(
s3_bucket + 'data/contacts/normalized' + '/*/*/*/*',
format = 'csv',
delimiter = '|',
encoding = 'utf-8',
header = 'true',
quote = ''
)
这是file_1.csv的示例:
|raw_id|title|civility|
|1 |M |male |
还有file2.csv的示例:
|raw_id|first_name|civility|
|2 |Tom |male |
我期望在数据框中得到的结果是:
|raw_id|first_name|title|civility|
|1 | |M |male |
|2 |Tom | |male |
但是,正在发生的事情是我拥有所有统一的列,但是数据在第一个文件之后不在正确的位置。 你知道怎么做吗?
非常感谢您。
答案 0 :(得分:0)
您需要将它们各自加载到不同的数据框中,然后将它们在raw_id列上结合在一起。