记录中的配置单元“\n”值

q5lcpyga  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(376)

我正在使用配置单元处理一个120 gb的大文件。首先将数据作为csv文件(以制表符分隔)从sqlserver表加载到awss3,然后在此文件的顶部创建配置单元外部表。从配置单元外部表查询数据时遇到问题。我注意到csv在许多列字段中包含\n(在sql server中实际上是“null”)。现在,当我创建配置单元表时,出现在任何记录中的\n将配置单元带到新记录,并为该记录中的其余列生成null。我试过以“001”结尾的行,但没有成功。我得到一个错误,配置单元只支持“以\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/';
cfh9epnr

cfh9epnr1#

您可以使用下面的命令更改表,或者在tbl属性的create语句中添加属性;

ALTER TABLE table set SERDEPROPERTIES ('serialization.null.format' = "");

这将使文件中的数据为空。

相关问题