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.csdn.net/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)))