pyspark 无法读取增量格式的Databricks增量/ Parquet文件

d7v8vwbk  于 2023-08-02  发布在  Spark
关注(0)|答案(2)|浏览(196)

我尝试使用Databricks中的以下代码读取Databricks中的delta / parquet

  1. df3 = spark.read.format("delta").load('/mnt/lake/CUR/CURATED/origination/company/opportunities_final/curorigination.presentation.parquet')

字符串
但是,我得到以下错误:

  1. A partition path fragment should be the form like `part1=foo/part2=bar`. The partition path: curorigination.presentation.parquet


这看起来很简单,但不知道为什么我得到的错误
有什么想法吗
文件结构如下所示:x1c 0d1x

6mw9ycah

6mw9ycah1#

这个错误表明delta lake认为你的分区路径命名错误。
如果在增量表中有任何分区列,例如year month day,则路径应该如下所示

  1. /mnt/lake/CUR/CURATED/origination/company/opportunities_final/year=yyyy/month=mm/day=dd/curorigination.presentation.parquet

字符串
你只需要

  1. df = spark.read.format("delta").load("/mnt/lake/CUR/CURATED/origination/company/opportunities_final")


如果你把它读作parquet,你可以这样做

  1. df = spark.read.parquet("/mnt/lake/CUR/CURATED/origination/company/opportunities_final")


因为你不需要读取parquet文件的绝对路径。

展开查看全部
bweufnob

bweufnob2#

出现上述错误主要是因为路径格式curorigination.presentation.parquet不正确。请检查您的增量位置,并检查是否已创建增量文件:

  1. %fs ls /mnt/lake/CUR/CURATED/origination/company/opportunities_final/

字符串
我在我的环境中复制了同样的东西。首先,我创建了一个带有 parquet 文件的数据框。

  1. df1 = spark.read.format("parquet").load("/FileStore/tables/")
  2. display(df1)


的数据
之后,我只是将parquet文件转换为delta格式,并将文件保存到这个位置/mnt/lake/CUR/CURATED/origination/company/opportunities_final/demo_delta1

  1. df1.coalesce(1).write.format('delta').mode("overwrite").save("/mnt/lake/CUR/CURATED/origination/company/opportunities_final/demo_delta1")


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


展开查看全部

相关问题