正在阅读文件夹中的增量表特定文件

wfveoks0  于 2022-11-01  发布在  Spark
关注(0)|答案(1)|浏览(122)

我正在尝试从包含多个增量文件的文件夹中读取特定文件,请参考随附的屏幕截图
原因我正在寻找读取基于架构版本的增量文件。上面提到的文件夹包含具有不同架构结构的文件。
编写文件的代码段:

df.write.format("delta").mode("overwrite").option("overwriteSchema", "true").save("/home/games/Documents/test_delta/")

用于阅读增量文件的代码

import pyspark[![enter image description here][1]][1]

from delta import *

builder = pyspark.sql.SparkSession.builder.appName("MyApp") \
    .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") \
    .config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")

spark = configure_spark_with_delta_pip(builder).getOrCreate()

path_to_data = '/home/games/Documents/test_delta/_delta_log/00000000000000000001.json'
df = spark.read.format("delta").load(path_to_data)
df.show()

错误:
org.apache.spark.sql.delta.DeltaAnalysisException:/home/games/Documents/test_delta/_delta_log/不是增量表。

btqmn9zl

btqmn9zl1#

您应该用途:
df = spark.read.format("delta").option("versionAsOf", 0).load(path_to_data)
您可以指定其他版本而不是0,具体取决于覆盖数据的次数。您还可以使用时间戳。有关详细信息,请参阅增量快速入门。
另外,delta_log文件夹实际上包含json格式的delta transaction log,而不是实际的数据。数据存在于父文件夹中(在您的示例中为test_delta)。以 part-0000 开头的文件是包含实际数据的文件。这些是.parquet文件。没有扩展名为.delta的文件。

相关问题