将1个配置单元表中的6000亿条记录加载到另一个配置表中

时间:2019-04-01 17:43:14

标签: apache-spark hadoop hive

我在1个数据库中有一个配置单元外部表,其中包含大约6,000亿条记录和100列。我需要将数据原样复制到其他数据库的同一表中。我正在尝试编写一个火花代码,但是它花了很多时间。有什么建议我将如何编写代码?我是新来的火花!

1 个答案:

答案 0 :(得分:1)

请勿复制,请放在原处。在另一个数据库中创建外部表,其位置指向数据位置。

USE YOUR_DATABASE;
CREATE EXTERNAL TABLE abc ... LOCATION 'hdfs://your/data';

如果需要,请使用MSCK REPAIR TABLE abc;ALTER TABLE abc RECOVER PARTITIONS;恢复分区,如果您使用的是EMR。

如果您绝对需要将数据复制到另一个位置(并且如果您在Amazon支付的EC2集群上,则需要为此花钱的原因),请使用distcp (distributed copy tool)

hadoop distcp hdfs://your/data hdfs://your/data2