我试图使用Databricks中的以下代码来读取Databricks中的delta / parquet
df3 = spark.read.format("delta").load('/mnt/lake/CUR/CURATED/origination/company/opportunities_final/curorigination.presentation.parquet')但是,我得到了以下错误:
A partition path fragment should be the form like `part1=foo/part2=bar`. The partition path: curorigination.presentation.parquet这看起来很简单,但不知道为什么我会犯这个错误
有什么想法吗?
文件结构如下所示

发布于 2022-08-06 12:40:22
此错误显示delta湖泊认为您有错误的分区路径命名。
如果您的增量表中有任何分区列,例如,一年月份日,那么您的路径应该看起来像/mnt/lake/CUR/CURATED/origination/company/opportunities_final/year=yyyy/month=mm/day=dd/curorigination.presentation.parquet,您只需要执行df = spark.read.format("delta").load("/mnt/lake/CUR/CURATED/origination/company/opportunities_final")。
如果您只是将其作为拼花阅读,您可以只做df = spark.read.parquet("/mnt/lake/CUR/CURATED/origination/company/opportunities_final"),因为您不需要读取拼花文件的绝对路径。
发布于 2022-08-06 19:23:32
以上错误主要是由于路径格式curorigination.presentation.parquet不正确造成的。请检查您的增量位置,并检查是否创建了增量文件:
%fs ls /mnt/lake/CUR/CURATED/origination/company/opportunities_final/ 我在我的环境中复制了同样的东西。首先,我用一个拼花文件创建了一个数据框架。
df1 = spark.read.format("parquet").load("/FileStore/tables/")
display(df1)

在此之后,我只是将拼花文件转换成增量格式,并将文件保存到这个位置/mnt/lake/CUR/CURATED/origination/company/opportunities_final/demo_delta1中。
df1.coalesce(1).write.format('delta').mode("overwrite").save("/mnt/lake/CUR/CURATED/origination/company/opportunities_final/demo_delta1")

#Reading delta file
df3 = spark.read.format("delta").load("/mnt/lake/CUR/CURATED/origination/company/opportunities_final/demo_delta")
display(df3)

https://stackoverflow.com/questions/73259013
复制相似问题