内容简介:在0.5.1版本之前,用户若想删除某条记录,可以使用Spark DataSource,并将如果应用程序中已经内嵌了HoodieWriteClient,可以直接使用HoodieWriteClient如下API删除记录介绍如何使用Datasource API对示例数据集执行删除的示例。与快速入门中的示例相同。
1. 引入
在0.5.1版本之前,用户若想删除某条记录,可以使用Spark DataSource,并将 DataSourceWriteOptions.PAYLOAD_CLASS_OPT_KEY
设置为 EmptyHoodieRecordPayload.class.getName
,便可删除指定记录,在Hudi新发布的0.5.1版本,可不使用上述配置项删除记录,而提供三种方式删除记录: Hudi API , Spark DataSource , DeltaStreamer ,下面逐一介绍如何使用。
2. 步骤
2.1 使用Hudi API
如果应用程序中已经内嵌了HoodieWriteClient,可以直接使用HoodieWriteClient如下API删除记录
2.2 使用DataSource
介绍如何使用Datasource API对示例数据集执行删除的示例。与快速入门中的示例相同。
1. 启动spark-shell
2. 导入必要的Import
3. 插入数据
4. 查询数据
5. 准备待删除数据集
首先通过查询准备好待删除的数据集
6. 删除数据
7. 验证
重新加载表记录,验证记录是否被删除
2.3 使用DeltaStreamer
使用HoodieDeltaStreamer进行删除与upsert相同,它依赖每个记录中名为“hoodie is deleted”的boolean类型的特定字段。
-
如果记录的字段值设置为false或不存在,则将其视为常规upsert。
-
如果不是(如果该值设置为true),则将其视为已删除记录。
这意味着必须更改数据源的schema来添加此字段,并且所有传入记录都应设置此字段值,在未来的版本中我们将尽量放开这点。
如原始数据源的schema如下。
那么要利用DeltaStreamer的删除功能,必须更改schema如下。
upsert传入记录示例数据如下
delete传入记录示例数据如下
只需要进行一次性的变更,DeltasDreamer将处理每批中的upsert和delete,并且每一批都可以包含upsert和deletes的混合,之后不需要额外的步骤或更改。
3. 总结
在Hudi 0.5.1-incubating版本中引入了额外三种删除记录的能力,用户可使用上述任意一种方案来达到删除记录的目的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- ArrayList 的删除姿势你都掌握了吗
- 强大的姿势感知模型用于姿势不变的人脸识别
- 从姿势到图像——基于人体姿势引导的时尚图像生成算法
- 行人重识别告别辅助姿势信息,港中文、商汤等提出姿势无关的特征提取GAN
- 穿越边界的姿势
- 日志打印的正确姿势!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First Design Patterns
Elisabeth Freeman、Eric Freeman、Bert Bates、Kathy Sierra、Elisabeth Robson / O'Reilly Media / 2004-11-1 / USD 49.99
You're not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire),......一起来看看 《Head First Design Patterns》 这本书的介绍吧!