hadoop - 配置单元加载数据 :how to specify file column separator and dynamic partition columns?

标签 hadoop hive

好吧,我有一些关于将 mysql 数据加载到 hive2 的问题,并且不知道如何指定分隔符,我尝试了 serval 次但一无所获。

下面是hive表,id是分区列,

0: jdbc:hive2://localhost/> desc test;  
+-----------+------------+----------+  
| col_name  | data_type  | comment  |  
+-----------+------------+----------+  
| a         | string     |          |  
| id        | int        |          |  
+-----------+------------+----------+

当我执行

load data local inpath 'file:///root/test' into table test partition (id=1);

它说:

Invalid path ''file:///root/test'': No files matching path file

但它确实存在。

我想按指定的文件进行动态分区,所以我将非常列添加到文件中,如下所示:

root@<namenode|~>:#cat /root/test  
a,1  
b,2

但它也失败了,文档对此只字未提,我猜它现在不支持。 有人知道吗?任何帮助将不胜感激!

最佳答案

如果你想指定列分隔符,它使用命令;

ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','

用你的分隔符替换','

此外,如果您想对 Hive 表进行分区,您可以指定要在使用时终止的列;

CREATE TABLE Foo (bar int )
PARTITIONED BY (testpartition string)  
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','

关于hadoop - 配置单元加载数据 :how to specify file column separator and dynamic partition columns?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22137474/

相关文章:

hadoop - to_utc_timestamp 是否考虑夏令时?

json - 将JSON插入Hadoop

csv - 使用配置单元导入混合数据(字符串和字符串数组)

hadoop - 如何将分区添加到带有嵌套数据的配置单元表中?

java - hive 外壳未启动

java - 输出文件包含 Mapper Output 而不是 Reducer 输出

algorithm - 比较两个大型电子邮件地址列表的最佳方法或算法是什么?

rest - 无法通过REST获取表数据

scala - 在另一个数据框中使用一个数据框的列

join - 谓词下推与 On 子句