【发布时间】:2019-10-16 10:43:54
【问题描述】:
用于创建查询的 Spark SQL 类似于 this -
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [db_name.]table_name
[(col_name1 col_type1 [COMMENT col_comment1], ...)]
USING datasource
[OPTIONS (key1=val1, key2=val2, ...)]
[PARTITIONED BY (col_name1, col_name2, ...)]
[CLUSTERED BY (col_name3, col_name4, ...) INTO num_buckets BUCKETS]
[LOCATION path]
[COMMENT table_comment]
[TBLPROPERTIES (key1=val1, key2=val2, ...)]
[AS select_statement]
其中[x] 表示x 是可选的。如果传递了CREATE sql 查询,我希望将输出作为以下顺序的元组-
(db_name, table_name, [(col1 name, col1 type), (col2 name, col2 type), ...])
那么有什么方法可以使用 pyspark sql 函数来做到这一点或需要正则表达式的帮助?
如果正则表达式有人可以帮忙处理正则表达式吗?
【问题讨论】:
-
不是直接解决您的问题,而是在查询创建后考虑过
describe table_name语句?不过,最后您需要将结果解析为所需的结构 -
在运行 CREATE 查询之前我想要 col 名称和类型。需要检查表是否已经存在于数据库中,或者是否具有相同的列名和类型。
-
列的顺序重要吗?
-
@thebluephantom 是的,非常。
标签: python sql apache-spark pyspark pyspark-sql