Python 在Pyspark中连接多个csv时添加路径位置列

Python 在Pyspark中连接多个csv时添加路径位置列,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我有一个路径列表,其中包含多个相同形状的CSV,称为routes 要将其读入单火花数据帧,我使用: df = spark.read.option("header","true").format('csv').load(routes) routes是DBFS路径的列表。当运行上面的程序时,是否可以添加一个带有路径的列,以便我知道数据来自何处 在pandas中,我会做一些类似于pd.concat(文件,键=路由)#假设文件是pandas csv数据帧的列表。 是否有一种方法可以添加带有路由的列 当

我有一个路径列表,其中包含多个相同形状的CSV,称为
routes

要将其读入单火花数据帧,我使用:

df = spark.read.option("header","true").format('csv').load(routes)
routes是DBFS路径的列表。当运行上面的程序时,是否可以添加一个带有路径的列,以便我知道数据来自何处

在pandas中,我会做一些类似于
pd.concat(文件,键=路由)#假设文件是pandas csv数据帧的列表。

是否有一种方法可以添加带有路由的列

当然,我认为您可以使用
.withColumn('path',routes)
,但这会引发以下错误:

AttributeError:“DataFrameReader”对象没有属性“withColumn”

我的路线看起来像

routes = ['dbfs:/mnt/Foo/Day_1`,'dbfs:/mnt/Foo/Day_2`,'dbfs:/mnt/Foo/Day_3`] 
当前df

df.show()
col_1 | col_2 | col_3
A     |  1    | 1
B     |  1    | 1
A     |  2    | 2
...
预期产量

col_1 | col_2 | col_3 | path 
A     |  1    | 1     | 'dbfs:/mnt/Foo/Day_1`
B     |  1    | 1     | 'dbfs:/mnt/Foo/Day_2`
A     |  2    | 2     | 'dbfs:/mnt/Foo/Day_3`
...

使用
输入文件名()
函数:

from pyspark.sql.functions import input_file_name

df.withColumn('path', input_file_name())

@我很乐意用这个问题来解释这个问题——很乐意修改并接受反馈。