hive - 创建 hive 表时要使用的分隔符
问题描述
以压缩格式 (.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';
nvarchar(max)
这些日志在 SQL 中有一列数据类型。哪个应该是 Hive 中使用的相应数据类型?
我尝试string
在 hive 中使用数据类型,但遇到以下问题:在 hive 中运行选择查询时,我只能看到该字段的前几个单词。我看不到整个列的值。
示例:该字段在 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 中查询此数据的解决方案或更好的方法。
解决方案
推荐阅读
- python - 使用循环生成图时的内存问题
- python - pip install tk 后 Tkinter 安装不起作用
- json - 使用python将字符串转换为字典的有用方法
- objective-c - AMDRadeonX6000MTLDriver 的用途是什么?
- next.js - NextJS 在页面中返回未定义的环境变量
- asp.net-core - 将 DBconnection 与 ASP.Net 标识一起使用
- python - 如何使用python仅在特定条件下执行脚本
- mysql - 我可以为此查询组合单独的月份和年份列吗?
- python - 如何在 Python 中解析年初至今的日期?
- python - 从外部文件中调用单词并将它们用作值