开始执行流式处理查询,在新的数据到达时不断将结果输出到给定表。 返回 StreamingQuery 对象。
Syntax
toTable(tableName, format=None, outputMode=None, partitionBy=None, queryName=None, **options)
参数
| 参数 | 类型 | Description |
|---|---|---|
tableName |
str | 表格名称 |
format |
str,可选 | 用于保存的格式。 |
outputMode |
str,可选 | 将数据写入接收器的方式: append, complete或 update。 |
partitionBy |
str 或 list,可选 | 分区列的名称。 对于已存在的 v2 表,忽略。 |
queryName |
str,可选 | 查询的唯一名称。 |
**options |
所有其他字符串选项。 为大多数流提供一个 checkpointLocation 。 |
退货
StreamingQuery
注释
对于 v1 表, partitionBy 始终遵循列。 对于 v2 表, partitionBy 仅当表尚不存在时才受尊重。
示例
将数据流保存到表:
import tempfile
import time
_ = spark.sql("DROP TABLE IF EXISTS my_table2")
with tempfile.TemporaryDirectory(prefix="toTable") as d:
q = spark.readStream.format("rate").option(
"rowsPerSecond", 10).load().writeStream.toTable(
"my_table2",
queryName='that_query',
outputMode="append",
format='parquet',
checkpointLocation=d)
time.sleep(3)
q.stop()
spark.read.table("my_table2").show()
_ = spark.sql("DROP TABLE my_table2")