我有一些来自外部的数据,格式如下:
user_id, user_name, project_name, position
"111", "Tom Petty", "Heartbreakers", "Vocals"
"222", "Ringo Starr", "Beatles, The", "Drummer"
"333", "Tom Brady", "Patriots", "QB"
然后我创建了我的外部表:
CREATE EXTERNAL TABLE tab1 (
USER_ID String,
USER_NAME String,
PROJECT_NAME String,
POSITION String
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/blah/foo'
当某些列中的数据中嵌入了逗号时,就会出现问题, Beatles, The
例如。这导致Hive把这个词 The
放入下一列(位置)并将数据放入最后一列。
所有传入的数据字段都用双引号括起来,但它们是逗号分隔的,即使它们中可能有逗号。不幸的是,让发送者清除数据不是一种选择。
如何创建此表?
2条答案
按热度按时间pkmbmrz71#
试试这个
gywdnpxw2#
您可以尝试使用特定的serde属性在配置单元表创建中使用open csv serde。
https://cwiki.apache.org/confluence/display/hive/csv+serde