问题
数组 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