创建hive表:
CREATE EXTERNAL TABLE my_table(
id int,
...
)
PARTITIONED BY (
dt string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
LINES TERMINATED BY '\n'
STORED AS textfile; <span style="font-size:14px;">中</span>
中
FIELDS TERMINATED BY '\001'
LINES TERMINATED BY '\n'
的设置,但是如果直接写\u0001, hive某些版本会变成u0001要小心hive的bug,如果用\001, hive会友好的转换成\u0001,( 详细介绍请参考: http://blog.youkuaiyun.com/csfreebird/article/details/29208987)
在终端运行时, hive -e 不执行,经过测试,把建表语句写入一个.txt文件中然后执行 hive -f **.txt ,建表成功。
(set 'cmd (append "use test;" cr_sql))
(set 'file-table-name (append mysql-table ".txt"))
(println file-table-name)
(if (file? file-table-name)
(exec (append "rm " file-table-name))
)
(set 'handle (open file-table-name "write"))
(write handle cmd)
(println (exec (append "hive -f " file-table-name)))