从 CSV 分号分隔数据在 HIVE 中创建 table

Create table in HIVE from CSV semicolon delimited data

我是 HIVE 的新手,这是我第一次接触它

这是我的数据样本

age;"job";"marital";"education";"default";"balance";"housing";"loan";"contact";"day";"month";"duration";"campaign";"pdays";"previous";"poutcome";"y" 58;"management";"married";"tertiary";"no";2143;"yes";"no";"unknown";5;"may";261;1;-1;0;"unknown";"no" 44;"technician";"single";"secondary";"no";29;"yes";"no";"unknown";5;"may";151;1;-1;0;"unknown";"no"

我尝试使用以下命令创建 table:

create external table bank_dataset(age TINYINT, job string, education string, default BOOLEAN, balance INT, housing BOOLEAN, loan BOOLEAN, contact STRING,day STRING, month STRING, duration INT,campaign INT, pdays INT, previous INT, poutcome STRING,y BOOLEAN)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\;'
location '/user/user_name/Bank_Project';

我创建了 table,然后我 运行 对其进行的任何查询(select * 来自 table 除外)都会产生错误。

我认为它与“;”有关数据之间。

有什么建议吗?

是的,终止于是某些配置单元版本(如 Asure)中的问题。请使用 FIELDS TERMINATED BY '\u0059' 而不是 ';'。

create external table bank_dataset(age TINYINT, job string, education string, default BOOLEAN, balance INT, housing BOOLEAN, loan BOOLEAN, contact STRING,day STRING, month STRING, duration INT,campaign INT, pdays INT, previous INT, poutcome STRING,y BOOLEAN)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\u0059'
location '/user/user_name/Bank_Project';
STORED AS TEXTFILE;

请注意,在更高的配置单元版本上,'\u003B' 可能有效。分号 (;) 的 Unicode 代码点是 U+003B,因此第二种解决方案更有意义。但我认为蜂巢假设 0059 为十进制并解释为';'。