我想准备样本数据以在配置单元表上进行测试存储为 Parquet 格式。表格看起来像这样:
hive> CREATE TABLE exps (sn STRING, buildNum STRING, shortProdName
STRING, userIV STRING, cfs STRUCT<version : STRING, name : STRING,
objArray : ARRAY<STRUCT<id : STRING, properties : INT>> >) STORED AS PARQUET;
然后我写了一个名为“sample.sql”的 sql 文件,其中包含数百万行 sql 插入命令。
$ /opt/hive-0.13.1/bin/hive -f sample.sql
这会导致hive启动大量的map-reduce作业,一个一个执行,速度很慢。
所以我的问题是:是否有更好的方法来做到这一点?
最佳答案
Hive 中没有虚拟表,因此 sample.sql 将无法运行。
由于您需要使用 SQL 在 hive 中尝试 parquet 格式,因此我的建议是
- 将数据加载到关系数据库(如 mysql)中。
- 使用 Apache Sqoop 将数据从关系数据库导入 HDFS。
- 创建一个 parquet 格式的 Hive 表
- 将数据从 HDFS 加载到 Hive 表。
关于hadoop - 使用配置单元 sql 批量插入数百万条记录到配置单元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26774311/