【发布时间】:2023-03-10 15:56:01
【问题描述】:
我正在从 parquet 文件中读取一个数据框,该文件具有嵌套列 (struct)。
如何检查是否存在嵌套列?
可能是这样的
+----------------------+
| column1 |
+----------------------+
|{a_id:[1], b_id:[1,2]}|
+----------------------+
或者这样
+---------------------+
| column1 |
+---------------------+
|{a_id:[3,5]} |
+---------------------+
我知道,如何检查顶级列是否存在,如下所示:How do I detect if a Spark DataFrame has a column:
df.schema.fieldNames.contains("column_name")
但是如何检查嵌套列?
【问题讨论】:
-
您可以使用
.printSchema()来分析推断的架构。您也可以通过定义case class myClass(...)并使用.as[myClass]来查看它是否转换成功,从而转换为键入的Dataset。 -
this answer 解释它。这是检查嵌套列的最可靠方法。
标签: scala apache-spark schema parquet