我正在尝试从包含多个增量文件的文件夹中读取特定文件,请参考随附的屏幕截图
原因我正在寻找读取基于架构版本的增量文件。上面提到的文件夹包含具有不同架构结构的文件。
编写文件的代码段:
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/
不是增量表。
1条答案
按热度按时间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的文件。