创建hive表时使用的分隔符

时间:2018-05-08 22:04:59

标签: hive hdfs nvarchar

导入的日志以压缩格式(.gz)从SQL服务器到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

在这个数据之上的hive中创建了一个外部表。

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

这些日志在SQL中有一列数据类型nvarchar(max)。哪个应该是Hive中使用的相应数据类型?

我尝试在hive中使用string数据类型,但遇到以下问题: 在hive中运行select查询时,我只能看到该字段的前几个单词。我看不到整个列值。

实施例: 该字段在SQL中具有以下值:

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

在Hive中查询时可见值:

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

字段和行分隔符似乎有些问题。 Hive仅支持新行作为行分隔符。我认为这导致了这个问题。

请建议在HDFS中查询此数据的解决方案或更好的方法。

0 个答案:

没有答案