试图通过直线将格式良好的~80gb文本文件(chr 01分隔)加载到配置单元中:
beeline -u "<connector:server:port>;principal=<principal_name>" \
-e "LOAD DATA INPATH '/path/to/hdfs/dir' OVERWRITE INTO TABLE database.tableName;"
该表是使用正确/适当的架构和数据类型(100列)创建的,参数如下:
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
STORED AS TEXTFILE;
加载数据时,似乎所有列都具有正确的信息—至少输入的数量级相同(百万条记录中的10条),列中的值的采样与预期值匹配;然而,第一列(巧合的是,skey)被严重复制——因为它被应用于第一次出现以下的记录。
SKEY ValA ValB ValC ValD
Record1 1 2 3 Apple
Record2 7 12 22 Baseball
Record3 9 28 10 Tennis
Record4 6 2 3 Jeans
...
RecordN 8 4 12 Wishbone
...
变成:
SKEY ValA ValB ValC ValD
Record1 1 2 3 Apple
Record1 7 12 22 Baseball
Record1 9 28 10 Tennis
....
Record4 6 2 3 Jeans
Record4 8 4 12 Wishbone
...
有没有人有克服这个问题的经验,或者对根本原因有什么想法?我相信我可以得到更好的结果与另一种格式(ie/avro),但它有点不满意。
文本文件导入到配置单元是否有最大限制?
1条答案
按热度按时间velaa5lx1#
列键的数据类型是什么?
--在查看boethius评论后更新----
我建议您使用字符串、大整数或十进制作为主键。有了浮子你就失去了精确性。e、 g.如果您有两个SKEY 8611317762和8611317761。我怀疑它们都被解释为8.611317762 x 10^10。这就是distinct返回错误答案的原因。