Считайте файл CSV, используя spark.read.csv
- Используя функцию
input_file_name()
, мы можем получить имя файла для каждой записи. - Разделите имя файла с помощью
_
и извлеките последний элемент. - Используя
substring (or) date_format (or) from_unixtime(unix_timestamp)
функции, мы можем извлечь year_month, day и добавить в качестве столбцов в фрейм данных.
Example:
#sample data in csv directory
file1_20200417123.csv
file2_20190212208.csv
$cat * csv
id,name
1,"a"
id,name
2,"b"
spark.read.option("header","true").csv("csv").\
withColumn("filename",reverse(split(input_file_name(),'_'))[0]).\
withColumn("year_month",substring(col("filename"),0,6)).\
withColumn("day",substring(col("filename"),7,2)).\
drop("filename").\
show(10,False)
#+---+----+----------+---+
#|id |name|year_month|day|
#+---+----+----------+---+
#|2 |b |201902 |12 |
#|1 |a |202004 |17 |
#+---+----+----------+---+