Apache spark 可以使用Sqoop对导入执行联接吗?

Apache spark 可以使用Sqoop对导入执行联接吗?,apache-spark,hadoop,import,bigdata,sqoop,Apache Spark,Hadoop,Import,Bigdata,Sqoop,最近有人问我这个问题,我在哪里描述了一个用例,除了我在Spark中实现的一些处理之外,还涉及多个连接,问题是,在使用Sqoop将数据导入HDFS时,连接是否没有完成?我想从体系结构的角度理解,即使可能,在Sqoop中实现连接是否可取。这取决于数据管道的基础结构,如果您将Spark用于其他目的,那么最好也使用相同的Spark来导入数据。Sqoop支持join,如果您只需要导入数据而不需要其他任何东西,它就足够了。希望这能回答您的问题。在sqoop导入中进行连接是可能的 从架构的角度来看,这取决于您

最近有人问我这个问题,我在哪里描述了一个用例,除了我在Spark中实现的一些处理之外,还涉及多个连接,问题是,在使用Sqoop将数据导入HDFS时,连接是否没有完成?我想从体系结构的角度理解,即使可能,在Sqoop中实现连接是否可取。

这取决于数据管道的基础结构,如果您将Spark用于其他目的,那么最好也使用相同的Spark来导入数据。Sqoop支持join,如果您只需要导入数据而不需要其他任何东西,它就足够了。希望这能回答您的问题。

在sqoop导入中进行连接是可能的

从架构的角度来看,这取决于您的用例,sqoop主要是一个用于快速导入/导出的实用程序。所有etl都可以通过spark/pig/hive/impala完成

虽然它是可行的,但我建议不要这样做,因为它将提高您的工作时间效率,并会增加计算联接/聚合的源的负载,而且sqoop主要设计为结构化源的接收工具。

您可以使用:

  • DBMS中的一个视图,其中使用sqoop eval读取数据库中的参数(可选)
  • 定义联接时sqoop的自由形式SQL
但是,带有联接的视图不能用于增量导入

在当前版本的Sqoop中使用自由形式查询的功能 仅限于没有模糊预测的简单查询 WHERE条款中没有或没有条件。使用复杂查询,例如 作为具有子查询或联接的查询,会导致不明确 预测可能导致意外的结果


Sqoop导入工具支持连接。可以使用--query选项对其进行归档(不要将此选项与--table/--column一起使用)。

您是否能够比较在Sqoop中执行连接与在Spark中执行连接的响应时间和内部工作与并行处理之间的差异?这是一个不同的问题。但两者都有能力在基表上对数据进行分区。但事实并非如此。