Hive 读取序列文件
Hive Reading a sequence File
我在查询存储为 Sequencefile 格式的 table 时,在 Hive tables 中看到的二进制数据有问题。
我使用 Sqoop 从指定以下选项的数据库导入数据:
--as-sequencefile --fields-terminated-by '[==]1' --null-string '\N' --null-non-string '
创建了一个 Hive 外部 table 以指向我导入数据库数据的位置:
CREATE EXTERNAL TABLE if not exists Test(
test_id string,
s_date timestamp)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '[=1=]1'
STORED AS sequencefile
LOCATION '<location where i importedsqoop data>
我在想我的 Hive tabe 会反序列化数据并以可读格式显示数据,但我认为数据是二进制或不可读格式。
我是否需要执行更多步骤才能让 Hive 反序列化数据?
谢谢。尼什。
Sqoop 的序列文件输出似乎与序列文件的 Hive 默认 SerDe 不兼容。有一个 Github 项目 Hive-Sqoop-Serde 可能是您需要的。
您还必须声明输入和输出格式。像这样创建 table:
CREATE EXTERNAL TABLE if not exists Test(
test_id string,
s_date timestamp)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '[=10=]1'
STORED AS sequencefile
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.SequenceFileInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat'
LOCATION '<location where i importedsqoop data>
我在查询存储为 Sequencefile 格式的 table 时,在 Hive tables 中看到的二进制数据有问题。
我使用 Sqoop 从指定以下选项的数据库导入数据:
--as-sequencefile --fields-terminated-by '[==]1' --null-string '\N' --null-non-string '
创建了一个 Hive 外部 table 以指向我导入数据库数据的位置:
CREATE EXTERNAL TABLE if not exists Test(
test_id string,
s_date timestamp)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '[=1=]1'
STORED AS sequencefile
LOCATION '<location where i importedsqoop data>
我在想我的 Hive tabe 会反序列化数据并以可读格式显示数据,但我认为数据是二进制或不可读格式。
我是否需要执行更多步骤才能让 Hive 反序列化数据?
谢谢。尼什。
Sqoop 的序列文件输出似乎与序列文件的 Hive 默认 SerDe 不兼容。有一个 Github 项目 Hive-Sqoop-Serde 可能是您需要的。
您还必须声明输入和输出格式。像这样创建 table:
CREATE EXTERNAL TABLE if not exists Test(
test_id string,
s_date timestamp)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '[=10=]1'
STORED AS sequencefile
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.SequenceFileInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat'
LOCATION '<location where i importedsqoop data>