美文网首页
4.4sqoop导入具有重复的列的查询

4.4sqoop导入具有重复的列的查询

作者: NEO_X | 来源:发表于2019-06-06 20:11 被阅读0次

Apache Sqoop Cookbook 英文版-翻译学习!!
更多信息https://blue-shadow.top/

问题

使用多个表连接查询导入数据的时候,sqoop在重复列的时候将会失败,输出的错误信息类似如下:

Imported Failed: Duplicate Column identifier specified: 'id'

解决方案

在SQL层面对相同的列进行重命名,让每个列的名字唯一。可以使用AS符号。举例来说,从表cities和normcities
中到处城市的名字,可以使用以下的查询:

--query "SELECT \
cities.city AS first_city \
normcities.city AS second_city \
FROM cities \
LEFT JOIN normcities USING(id)

讨论

在初始准备和提交MapReduce作业之前,Sqoop执行若干操作。此类操作之一是获取有关已转移列及其关联类型的元数
据。在此步骤中, Sqoop将生成一个Java类,类中的属性和表的列相应,包括名字和类。Java属性必须是唯一的;因此,
查询中的所有列都必须具有唯一的名称。

虽然数据库通常在表中强制执行唯一的列名, 在这种情形系下,联接操作过程中, 不同表中的两列具有相同的列名
,输出结果集包含两个同名列。如果查询使用类似的片段从所有联接表中选择所有列, 则此问题尤其成问题。
在这种情况下,分别命名每个列, 并使用 AS 子句重命名重复列, 以便查询不会有重复的名称。

相关文章

  • 4.4sqoop导入具有重复的列的查询

    Apache Sqoop Cookbook 英文版-翻译学习!!更多信息https://blue-shadow.t...

  • SQL Server查询重复数据

    1.查询单列重复: 2.查询多列重复

  • DQL数据查询 总结 & 实例 - SQL

    列控制 查询所有列 查询指定列 Where 去重查询 DISTINCT 完全重复记录只显示一次 列运算 列运算并不...

  • SQL 查询

    原文链接1原文链接2原文链接3原文链接4 查询单列 查询多个列 查询所有列 去除相同的查询结果 去除单列的重复结果...

  • Mysql学习笔记(3)-查询数据大全

    1.查询所有的列2.查询指定列3.查询时使用别名4.查询时添加常量列5.查询时合并列6.查询时去除重复记录(dis...

  • Oracle语句练习

    1. 查询 (1.1).单表查询,去掉重复记录,排序查询,基于伪列的查询,聚合统计,多表内连接查询,左外连接查询,...

  • 数据库查询详解(待完善)

    查询 select语句的一般格式 执行顺序 一.单表查询 选择列部分列全部列经过计算的值 选择行消除重复行:dis...

  • 二、SELECT 语句

    Select语句 2.查询多个列的结果 **3.去除重复的查询结果 DISTINCT ** 4.限定搜索的结果行数...

  • 学习笔记 2019-12-02

    频繁重复的表间数据对比 逆透视要比对的数据列 对第二张表重复操作,同时追加查询第一张表 透视属性列,值列选择要比对...

  • DQL-数据查询

    语法 基本查询 查询多个字段 设置别名 去除重复记录 条件查询 语法 条件image.png 聚合函数:将一列数据...

网友评论

      本文标题:4.4sqoop导入具有重复的列的查询

      本文链接:https://www.haomeiwen.com/subject/iaicxctx.html