我正在使用hive处理一个120 GB的大文件。数据首先以csv文件(制表符分隔)的形式从sql server表加载到aws s3,然后在此文件的顶部创建配置单元外部表。从配置单元外部表中查询数据时遇到问题。我注意到csv在许多列字段中包含\n (在sql server中实际上是“null”)。现在,当我创建hive表时,出现在任何记录中的\n将hive带到新记录,并为该记录中的其余列生成NULL。我尝试了以"001“结尾的行,但没有成功。我得到一个错误,hive只支持“以\n终止的行”。我的问题是,如果hive仅支持\n作为行分隔符,您将如何处理包含\n值的列?有什么建议吗?
这就是我创建外部表的方式:
DROP TABLE IF EXISTS IMPT_OMNITURE__Browser;
CREATE EXTERNAL TABLE IMPT_OMNITURE__Browser (
ID int, Region string, Description string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LOCATION 's3://abm-dw/data-import/omniture/Browser/';发布于 2016-11-09 02:20:59
您可以使用下面的命令更改该表,或者在TBL属性的create语句中添加该属性;
ALTER TABLE table set SERDEPROPERTIES ('serialization.null.format' = "");这将使文件中的数据为空。
https://stackoverflow.com/questions/40491208
复制相似问题