Я обрабатываю файлы CSV из S3 с помощью pyspark, однако я хочу включить имя файла в качестве нового столбца, для которого я использую следующий код:
spark.udf.register("filenamefunc", lambda x: x.rsplit('/', 1)[-2])
df=spark.read.csv("s3a://exportcsv-battery/S5/243/101*",sep=',',header=True,inferSchema=True)
df=df.withColumn("filename", 'filenamefunc(input_file_name())')
Но вместо имени файла мне нужна его подстрока, например, если это input_file_name: -
S3A: //exportcsv-battery/S5/243/101_002932_243_AAA_A_T01_AAA_AAA_0_0_0_0_2_10Hz.csv
Я только хочу, чтобы 243 извлекался и сохранялся в новом столбце, для которого я определил UDF как:
spark.udf.register("filenamefunc", lambda x: x.rsplit('/', 1)[-2])
Но, похоже, это не работает. Есть ли что-то, что я могу сделать, чтобы это исправить или другой подход? Спасибо!