发现重复列错误块创建三角洲表

三角洲表不允许重复列名

写由深ak.butada

2023年7月28日

问题

数组 struct列数组dataFrame内有一个或多个重复列名

尝试创建三角洲表数据中发现重复列保存报错

示例代码

用此示例代码复制错误

1) 第一步搭建数组并重列名重复列通过样本代码注释识别

scala/样本json文件测试_json函数数组Scraval数组StructSchema = 新建StructType.add

2)验证DataFrame后,我们试图创建Delta表并获取数据中发现重复列保存报错

scaladf.deplaceTempView (df)dfrite.format

因果

数组结构列中含有同名复列无法显示为Delta表即便名称不同,情况也是如此

三角湖保留案例,但对案例不敏感,存储模式

为了避免潜在的数据腐烂或数据损耗,不允许重复列名

求解

方法包括将列重转json字符串

1)你需要转换结构型列到字符串使用to_json函数前创建Delta表

sql函数.to_jsonvaldf1=dfelect

2使用get_json_object()函数从转换字符串类型列提取信息

achespark.sql函数.get_jsonjectvald2=df1.select


文章有帮助吗