读取表

批量读取

师成师成· 更新于 2026-09-29· 阅读 2 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Spark DataSource API

hudi-spark 模块提供了 DataSource API,可用于将 Hudi 表读取为 Spark DataFrame。

时间旅行查询示例:

val tripsDF = spark.read.
    option("as.of.instant", "2021-07-28 14:11:08.000").
    format("hudi").
    load(basePath)
tripsDF.where(tripsDF.fare > 20.0).show()

Flink 批处理(快照)读取

将 read.streaming.enabled 保持其默认值 false,即可让 Flink 以快照(批处理)查询的方式读取 Hudi 表。

CREATE TABLE hudi_table (
  uuid VARCHAR(20) PRIMARY KEY NOT ENFORCED,
  name VARCHAR(10),
  age INT,
  ts TIMESTAMP(3),
  `partition` VARCHAR(20)
)
PARTITIONED BY (`partition`)
WITH (
  'connector' = 'hudi',
  'path' = '${path}',
  'table.type' = 'MERGE_ON_READ'
  -- read.streaming.enabled defaults to false → batch/snapshot read
);

-- Snapshot query
SELECT * FROM hudi_table WHERE age > 25;

更多 Flink 读取选项,请参阅使用 Flink。

Daft

Daft 支持使用 daft.read_hudi() 函数读取 Hudi 表。

# Read Apache Hudi table into a Daft DataFrame.
import daft

df = daft.read_hudi("some-table-uri")
df = df.where(df["foo"] > 5)
df.show()

请查阅 Daft 文档中的 Hudi 集成。

评论

登录后参与评论

正在加载评论…