本文为您介绍 Spark SQL建表语法。

语法

CREATE TABLE tbName[(columnName dataType [,columnName dataType]*)]
USING providerName
OPTIONS(propertyName=propertyValue[,propertyName=propertyValue]*);
-- CTAS

CREATE TABLE tbName[(columnName dataType [,columnName dataType]*)]
USING providerName
OPTIONS(propertyName=propertyValue[,propertyName=propertyValue]*)
AS
queryStatement;

CTAS:将创建表和将查询结果写入到表的语句合并到一起,当执行完操作,将创建出表并实际生成一个 StreamQuery 实例,将查询结果写入到结果表中。

说明

从语法中可以看出,表的字段信息是可选的。不同的数据源实现,在建表时对字段是否需要显式定义的要求也不一样。

举例说明:
CREATE TABLE kafka_table 
USING kafka 
OPTIONS (
kafka.bootstrap.servers = "${BOOTSTRAP_SERVERS}",
subscribe = "${TOPIC_NAME}",
output.mode = "${OUTPUT_MODE}",
kafka.schema.registry.url = "${SCHEMA_REGISTRY_URL}",
kafka.schema.record.name = "${SCHEMA_RECORD_NAME}",
kafka.schema.record.namespace = "${SCHEMA_RECORD_NAMESPACE}");
说明 :对于Kafka数据源,当提供Kafka Schema Registry地址时,系统会自动从Kafka Schema Registry服务中检索对应topic的schema定义。