hdfs—创建配置单元表时要使用的分隔符

ybzsozfc  于 2021-06-26  发布在  Hive
关注(0)|答案(0)|浏览(251)

以压缩格式(.gz)将日志表从sql server导入hdfs。

sqoop import --connect "jdbc:jtds:sqlserver://ServerName:1433/Test" --username sa --password root --table log --target-dir hdfs://localhost:50071/TestMain --fields-terminated-by "¤" --hive-import --create-hive-table --compress --split-by Logid

在配置单元中在此数据的顶部创建了一个外部表。

CREATE EXTERNAL TABLE TestMain(LogMessage varchar(2000))
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY "¤" 
STORED AS TEXTFILE 
LOCATION 'hdfs://localhost:50071/TestMain';

这些日志有一列数据类型 nvarchar(max) 在sql中。哪个应该是要在配置单元中使用的相应数据类型?
我试着用 string 数据类型在配置单元中,但面临以下问题:在配置单元中运行select查询时,我只能看到字段的前几个字。我看不到整个列的值。
示例:该字段在sql中具有以下值:

Message: Procedure or function 'XYZ' expects parameter '@ABC', which was not supplied.
Stacktrace:    This has whole 5 lines error stack trace.

在配置单元中查询时可见的值:

Procedure or function 'XYZ' expects parameter '@ABC', which was not supplied.

字段和行分隔符似乎有问题。配置单元仅支持新行作为行分隔符。我认为这是问题的根源。
请建议一个解决方案或更好的方式来查询hdfs中的数据。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题