当前位置: 代码迷 >> python >> 从csv文件名中提取日期并加载到-python pandas spark列中的hive表中
  详细解决方案

从csv文件名中提取日期并加载到-python pandas spark列中的hive表中

热度:154   发布时间:2023-06-13 13:43:04.0

需要一些帮助,要求从csv文件名中提取日期并加载到列中。

输入文件= ABC_XYZ_EXPORT-20170101.csv,ABC_XYZ_EXPORT-20170102.csv

我能够在循环中读取这两个文件,但是日期只提取一次,对于两个不同文件中的所有记录都是静态的。 我不确定,但由于循环不正确,这可能非常好。 请帮忙。 提前致谢。

 for input_file in allFiles:
    exc_date = input_file
    exc_date = re.sub('ABC_XYZ_EXPORT-+([0-9]+)[.]csv$', r'\1', exc_date)
    #print(exc_date)
    #PD pandas dataframe
    for d in exc_date:
       csv_input = pd.concat((pd.read_csv(f) for f in allFiles))
       csv_input['Load_date'] = exc_date
       csv_input.to_csv('outputpd.csv')

在IIUC中,您需要从多个文件中读取数据,并将Load_Date列分配给具有文件名日期的列。

allFiles  = ['ABC_XYZ_EXPORT-20170101.csv' , 'ABC_XYZ_EXPORT-20170102.csv']

csv_input =pd.DataFrame()

for input_file in allFiles:
    #Loop through each file
    exc_date = input_file
    exc_date = re.sub('ABC_XYZ_EXPORT-+([0-9]+)[.]csv$', r'\1', exc_date)
    df=pd.read_csv(input_file)
    df['Load_date'] = exc_date #Add date for that file alone
    csv_input.append(df) # append to previously read data

csv_input.to_csv('outputpd.csv') #Creates a single output file with contents from all files.