Azure Databricks INFORMATION_Schema

Azure Databricks INFORMATION_Schema

我正在使用 Azure Databricks,需要找到一种方法来找出在多个表中哪些列允许为 NULL。对于 MySQL,Databricks 中不存在众所周知的 Information_Schema。

我现在的想法是使用 Spark SQL 从那里创建模式。我现在想知道这是否是生成信息模式的等效方法?我的方法是这样的:

df = spark.sql("Select * from mytable")
df.schema

如有任何意见,我们将不胜感激!

默认情况下,在 Spark 中,Dataframe 的任何列都可以为空。如果你需要强制某些数据不应该为空,那么你要么使用代码在写入数据之前进行检查,要么你可以使用 constraints supported by Delta tables,如 NOT NULL,或 CHECK (对于任意条件)。有了这些约束,Spark 会在写入前检查数据,如果数据不符合给定的约束,Spark 就会失败,就像这样:

P.S> 如果您使用 describe tabledescribe table extended 等 SQL 命令,您可以获得有关 table 的架构和这些约束的更多信息。