我正在从S3阅读Avro文件。我试图将其写入delta文件。我有以下模式
|--test: struct
|--test2: struct
|--test3: struct
字符串
当我跑步时:
print(df.schema['test'].dataType)
型
我得到了正确的输出,但是当我运行
print(df.schema['test.test2'].dataType)
型
我得到以下错误:
'No StructField named test.test2'
型
我需要获取struct schema,因为有时spark会推断某些struct列是字符串,因为它们是空的。我试图做的是验证列类型是StringType还是StructureType。然而,就像我之前说的,我无法获取嵌套结构的数据类型。
我的疑问是:有没有可能不迭代就得到嵌套列结构的数据类型?如果没有,最好的方法是什么?
1条答案
按热度按时间6ovsh4lw1#
要将嵌套的
StructType
作为对象访问,请在目标列的 selection 上使用schema
属性。示例(假设有一些
data
):个字符
要获取具体
StructField
的内部数据类型,请使用以下访问方案:的字符串