在 Delta Lake House 中读取文件时出现问题 - 数据流

问题描述 投票:0回答:1

我正在独自用数据块建造我的第一个三角洲湖房子。我需要读取 AWS 中存储桶中 csv 格式的文件,我可以通过执行 display(dbutils.fs.ls 来查看包含我的文件的文件夹。但是,在执行 readStream 时,它只读取单个文件,其中包含所有文件具有相同的名称,仅区分最后 4 位数字,即年份(2013、2014、2015)。

示例:data_from_2013.csv、data_from_2014.csv。

唯一读取的文件来自 2018 年,其结构与所有其他文件完全相同。 我相信这是我失败的事情,因为我需要在每个文件中插入年份的新列,并且唯一包含此数据的位置是每个文件的 B 列、第 1 行中的文件内。之后,我需要删除每个文件的前三行。

path_file = "/mnt/path/path_data/path_data_year/data_from_****.csv"

df_bronze_despesUF_funcao = spark.readStream \
    .format("csv") \
    .schema(schema) \
    .options(header='true', inferSchema='true', 
             delimiter=';', encoding='iso-8859-1', skiprows=3) \
    .load(path_file)

请问,有人可以帮助我吗?

我已阅读 Databricks 文档、观看视频,但无法完成此任务

apache-spark amazon-s3 databricks spark-streaming delta-lake
1个回答
1
投票

_****.csv
代替path_file,只需将path_file声明为文件夹

path_file = "/mnt/path/path_data/path_data_year/"

df_bronze_despesUF_funcao = spark.readStream
.format("csv")
.schema(schema)
.options(header='true', inferSchema='true', delimiter=';', encoding='iso-8859-1', skiprows=3)
.load(path_file)
© www.soinside.com 2019 - 2024. All rights reserved.