[英]How to view specific changes in data at particular version in Delta Lake
现在我有一个测试数据,它有 1 个分区,在该分区内有 2 个镶木地板文件
如果我将数据读取为:
val df = spark.read.format("delta").load("./test1510/table@v1")
然后我得到 10,000 行的最新数据,如果我读到:
val df = spark.read.format("delta").load("./test1510/table@v0")
然后我得到 612 行,现在我的问题是:如何仅查看在版本 1 中添加的那些新行,即 10,000 - 612 = 9388 行
简而言之,在每个版本中,我只想查看哪些数据发生了变化。 总体而言,在 delta 日志中,我可以看到 json 文件,在 json 文件中,我可以看到它在每个版本中创建了单独的镶木地板文件,但如何在代码中查看它?
我在 Scala 中使用 Spark
您甚至不需要进入parquet
文件级别。 您可以简单地使用 SQL 查询来实现这一点。
%sql
SELECT * FROM test_delta VERSION AS OF 2 minus SELECT * FROM test_delta VERSION AS OF 1
上面的代码将为您提供版本 2 中新添加的行,而这些行不在版本 1 中
在您的情况下,您可以执行以下操作
val df1 = spark.read.format("delta").load("./test1510/table@v1")
val df2 = spark.read.format("delta").load("./test1510/table@v0")
display(df2.except(df1))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.