嗨,我的csv文件结构就像
File-1
id col1 col2
a_1 sd fd
ds emd
sf jhk
File-2
id col1 col2
b_2 sd fd
ds emd
sf jhk
现在我希望当我将我的csv文件加载到数据帧时,我的id列为该文件的所有行1应该具有值1和文件2值2.所以我的数据帧应该看起来像 -
id col1 col2
a_1 sd fd
a_1 ds emd
a_1 sf jhk
b_2 sd fd
b_2 ds emd
b_2 sf jhk
我想这样做,所以我可以通过文件ID识别行,如果我正在读取多个csv文件。请注意我不想添加文件名作为id,我想使用文件第一行中的id列扩展到数据框中所有相应的文件行。
如果你确定它是否会在第一行。下面是伪代码。
file1_id = df_file1.filter(id != None).select(col('id')).collect()[0]
然后使用上面计算的文件ID作为
df_file1.drop('id').withColumn('id',lit(file1_id))
对第二个数据帧df_file2执行相同操作,然后执行联合
df_file = df_file1.unionAll(df_file2)