Sqoop - 数据分割

2024-02-22

Sqoop 能够使用以下方式从多个表导入数据--query子句,但不清楚是否能够导入以下查询。

按部门号从员工组中选择部门号、平均工资

另一个问题是

sqoop import --connect jdbc:mysql://myserver:1202/ --username=u1 --password=p1 --query '从 emp 中选择 *,其中 empid

$CONDITIONS 和 split-by 用于执行并行处理,或者我们可以说有效地导入数据。前者根据条件分割行,后者在主键上使用最小和最大逻辑。这两个有什么区别($CONDITIONS, split-by)。如果我们在同一个 sqoop 语句中使用这两个子句,哪个子句将获得优先级?

谢谢....


你们的理解有些差距。

首先,并行度由-m <n> or --num-mappers <n>。默认值为--num-mappers is 4.

Second, --split-by <column-name>,将根据列名称拆分您的任务。

Third, $CONDITIONS,sqoop内部使用它来实现这个分割任务。

Example,您发起了一个查询:

sqoop import --connect jdbc:mysql://myserver:1202/ --username u1 --password p1 --query 'select * from emp where $CONDITIONS' --split-by empId --target-dir /temp/emp -m 4

比如说,我的 empId 从 1 到 100 均匀分布。

现在,sqoop 将采取--split-by列并找到它的max and min使用查询的值:

SELECT MIN(empId), MAX(empId) FROM (Select * From emp WHERE (1 = 1) ) t1

看到替换了$CONDITIONS with (1 = 1).

在我们的例子中,最小值、最大值分别为 1 和 100。

由于映射器的数量为 4,sqoop 会将我的查询分为 4 部分。

创建下限“empId >= 1”和上限“empId

创建下限“empId >= 25”和上限“empId

创建下限“empId >= 50”和上限“empId

创建下限“empId >= 75”和上限“empId

Now $CONDITIONS将再次出现在画面中。它被上面的范围查询取代。

第一个映射器将像这样触发查询:

Select * From emp WHERE empId >= 25' AND 'empId < 50

其他 3 个映射器依此类推。

所有映射器的结果被聚合并写入最终的 HDFS 目录。

关于您的查询:

select deptid, avg(salary) from emp group by deptid

你将指定

--query 'select deptid, avg(salary) from emp group by deptid where $CONDITIONS'

它将首先转换为

select deptid, avg(salary) from emp group by deptid where (1 = 0)

获取列元数据。

我相信这个查询不会在 RDBMS 中运行。尝试上面的查询(having Where (1 = 0))直接在Mysql中。

因此,您将无法使用此查询来使用 Sqoop 获取数据。

Sqoop 用于更简单的 SQL 查询。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sqoop - 数据分割 的相关文章

  • 我可以在没有 Hadoop 的情况下使用 Spark 作为开发环境吗?

    我对大数据和相关领域的概念非常陌生 如果我犯了一些错误或拼写错误 我很抱歉 我想了解阿帕奇火花 http spark apache org 并使用它仅在我的电脑中 在开发 测试环境中 由于Hadoop包含HDFS Hadoop分布式文件系统
  • InvalidRequestException(为什么:empid 如果包含 Equal,则不能被多个关系限制)

    这是关于我从 Apache Spark 查询 Cassandra 时遇到的问题 Spark 的正常查询工作正常 没有任何问题 但是当我使用关键条件进行查询时 出现以下错误 最初 我尝试查询复合键列族 它也给出了与下面相同的问题 由以下原因引
  • 2n + 1 法定人数是什么意思?

    我在描述 HBase 的 Zookeeper 配置时遇到过这个问题 但我对这个术语并不熟悉 N 与我的 HBase 集群中的节点数量有关系吗 或者我应该在 Zookeeper 集群中使用的节点数量 2f 1是指你所需要的可靠性 可用性水平
  • Hadoop 推测任务执行

    在Google的MapReduce论文中 他们有一个备份任务 我认为这与Hadoop中的推测任务是一样的 推测任务是如何实现的 当我启动一项推测任务时 该任务是从一开始就作为较旧且缓慢的任务开始 还是从较旧的任务到达的位置开始 如果是这样
  • pyspark.sql.utils.AnalysisException:u'Path不存在

    我正在使用标准 hdfs 与 amazon emr 运行 Spark 作业 而不是 S3 来存储我的文件 我在 hdfs user hive warehouse 有一个配置单元表 但当我的 Spark 作业运行时找不到它 我配置了 Spar
  • 使用字符串数组在 Hive 表上加载 CSV 文件

    我正在尝试将 CSV 文件插入 Hive 其中一个字段是 string 数组 这是 CSV 文件 48 Snacks that Power Up Weight Loss Aidan B Prince Health Fitness Trave
  • 如何按行扩展数组值!!使用 Hive SQL

    我有一个有 4 列的表 其中一列 项目 类型是 ARRAY 其他是字符串 ID items name loc id1 item1 item2 item3 item4 item5 Mike CT id2 item3 item7 item4 i
  • 在 Hadoop MapReduce 中为二进制文件创建自定义 InputFormat 和 RecordReader

    我正在编写一个 M R 作业 该作业处理以二进制格式编写的大型时间序列数据文件 如下所示 此处换行以提高可读性 显然 实际数据是连续的 TIMESTAMP 1 TIMESTAMP 1 TIMESTAMP 2 TIMESTAMP 2 TIME
  • Hive:在查询中将 array 转换为 array

    我有两张桌子 create table a 1 array
  • 无法在 Windows 10 中启动 Spark Master

    我是 Spark 新手 我正在尝试手动启动 master 在 Windows 10 中使用 MINGW64 当我这样做时 Downloads spark 1 5 1 bin hadoop2 4 spark 1 5 1 bin hadoop2
  • 将 Apache Zeppelin 连接到 Hive

    我尝试将我的 apache zeppelin 与我的 hive 元存储连接起来 我使用 zeppelin 0 7 3 所以没有 hive 解释器 只有 jdbc 我已将 hive site xml 复制到 zeppelin conf 文件夹
  • 为什么我们需要将外部表移动到托管 Hive 表?

    我是 Hadoop 新手 正在学习 Hive 在 Hadoop 权威指南第 3 版中 第 12 页 第428章 最后一段 我不明白下面关于 HIVE 中外部表的段落 一种常见的模式是使用外部表访问存储在 HDFS 中的初始数据集 由另一个进
  • Hive NVL 不适用于列的日期类型 - NullpointerException

    我正在使用 HDFS 上的 MapR Hive 发行版并面临以下问题 如果表的列类型是 日期 类型 则NVL https cwiki apache org confluence display Hive LanguageManual UDF
  • 全部配对图表上的所有路径

    这可能是一个没有最佳解决方案的问题 假设我有一个有向图 不知道它是否有循环 循环检测将是这个问题的方面之一 给定一组顶点 可能是数百万个顶点 我需要计算给定图的所有唯一对之间的所有不同路径 没有重复顶点的路径 我该如何应对这种情况 让我们看
  • Impala:如何查询具有不同模式的多个镶木地板文件

    在 Spark 2 1 中我经常使用类似的东西 df spark read parquet path to my files parquet 即使具有不同的模式 也可以加载镶木地板文件的文件夹 然后我使用 SparkSQL 对数据帧执行一些
  • Hive 聚集在多个列上

    据我所知 当配置单元表聚集在一列上时 它会执行该分桶列的哈希函数 然后将该行数据放入其中一个桶中 每个桶都有一个文件 即如果有 32 个桶 那么 hdfs 中就有 32 个文件 将 clustered by 放在多个列上意味着什么 例如 假
  • 将数据从 .txt 文件加载到 Hive 中以 ORC 形式存储的表

    我有一个数据文件位于 txt格式 我正在使用该文件将数据加载到 Hive 表中 当我将文件加载到类似表中时 CREATE TABLE test details txt visit id INT store id SMALLINT STORE
  • Protobuf RPC 在 Hadoop 2.2.0 单节点服务器上不可用?

    我正在尝试在按照本教程安装的本地单节点集群上运行 hadoop 2 2 0 mapreduce 作业 http codesfusion blogspot co at 2013 10 setup hadoop 2x 220 on ubuntu
  • Hadoop - 直接从 Mapper 写入 HBase

    我有一个 hadoop 作业 其输出应写入 HBase 我并不真正需要减速器 我想要插入的行类型是在映射器中确定的 如何使用 TableOutputFormat 来实现此目的 从所有示例中 我看到的假设是 reducer 是创建 Put 的
  • Hadoop 超立方体

    嘿 我正在启动一个基于 hadoop 的超立方体 具有灵活的维度数 有人知道这方面现有的方法吗 我刚刚发现PigOLAP草图 http wiki apache org pig PigOLAPSketch 但没有代码可以使用它 另一种方法是Z

随机推荐