【发布时间】:2020-01-06 21:35:07
【问题描述】:
我正在完成一个过程,我想将 csv 文件提取到数据帧中。此文件是每天运行的增量文件,存储在 Azure DataLake 存储中。
DF = (
spark
.read.option("header",True)\.option("inferSchema", "true").option("delimiter", "|")
.csv("folder2/folder1/Intenstion_file2020*.csv")
)
从上面的代码中,我基本上收集了所有以“file2020”开头的文件,然后是所有其他文件。因此,如果有 10 个,则将其放入一个数据帧中。
我想要做的不是将所有这 10 个文件提取到数据框中,而是选择与系统日期匹配的文件。因此,如果我有以下文件: 1)文件2020/01/01 2)文件2020/01/02 3) 文件2020/01/09 我只想摄取第三个文件。然后下一次它将选择具有最新日期的下一个文件。
我尝试通过首先获取系统日期来解决此问题。这在数据框部分之前运行。
#Getting System Time Stamp
import datetime
date_value = datetime.datetime.now()
print(datetime.datetime.strftime(date_value,'%Y/%m/%d'))
所以如果我在上面的笔记本上运行,我会得到“date_value”= 2020/01/09。然后我想做的是将该值连接到上面数据框示例中的“csv(path)”中。
所以不是有
.csv("folder2/folder1/Intenstion_file2020*.csv")
我会有类似的东西:
.csv(concat_ws("....file" date_value "*.csv"))
所以它会自动找到日期最接近系统日期的文件。
我尝试了上面的一些变量,但我缺少正确的语法,或者我上面所做的是否可行。有没有人尝试过上述操作?
感谢任何帮助。
2020 年 1 月 9 日更新 我更新了问题,以便更清楚地了解我想要实现的目标。
【问题讨论】:
标签: databricks azure-databricks