Spark Scala,如何检查数据框中是否存在嵌套列
Spark Scala, how to check if nested column is present in dataframe
我正在从具有嵌套列 (struct
) 的镶木地板文件中读取数据框。
如何检查是否存在嵌套列?
可能是这样
+----------------------+
| column1 |
+----------------------+
|{a_id:[1], b_id:[1,2]}|
+----------------------+
或者像这样
+---------------------+
| column1 |
+---------------------+
|{a_id:[3,5]} |
+---------------------+
我知道,如何检查顶级列是否存在,如此处回答: :
df.schema.fieldNames.contains("column_name")
但是如何检查嵌套列?
您可以获得嵌套字段的架构作为结构,然后检查您的字段是否存在于它的字段名称中:
val index = df.schema.fieldIndex("column1")
val is_b_id_present = df.schema(index).dataType.asInstanceOf[StructType]
.fieldNames.contains("b_id")
我正在从具有嵌套列 (struct
) 的镶木地板文件中读取数据框。
如何检查是否存在嵌套列?
可能是这样
+----------------------+
| column1 |
+----------------------+
|{a_id:[1], b_id:[1,2]}|
+----------------------+
或者像这样
+---------------------+
| column1 |
+---------------------+
|{a_id:[3,5]} |
+---------------------+
我知道,如何检查顶级列是否存在,如此处回答:
df.schema.fieldNames.contains("column_name")
但是如何检查嵌套列?
您可以获得嵌套字段的架构作为结构,然后检查您的字段是否存在于它的字段名称中:
val index = df.schema.fieldIndex("column1")
val is_b_id_present = df.schema(index).dataType.asInstanceOf[StructType]
.fieldNames.contains("b_id")