gpt4 book ai didi

java - 是否可以在 MR 作业之外将数据写入 HDFS 并仍然使用 Hive 进行查询?

转载 作者:行者123 更新时间:2023-12-02 01:19:44 25 4
gpt4 key购买 nike

我正在使用 MR 工作的骨架代码。该作业的输入和输出都是 NullWritable。我必须使用这个骨架,但我还必须将此作业的数据写入 HDFS。此外,我写入的数据必须可以通过Hive查询。

有办法做到这一点吗?

我知道如何通过 Java 中的 hadoop 文件系统 API 导航和操作文件。我遇到的主要问题是如何通过 Hive 查询这些文件。

最佳答案

最简单的方法是创建一个指向 HDFS 中某个位置的外部 Hive 表。然后让您的 MR 作业以与 Hive 方案一致的格式将文件写入同一位置(反之亦然,创建 Hive 架构以匹配 MR 作业输出的预期格式)。

create external table if not exists dbname.tblname 
(field1 STRING
,field2 STRING
,field3 STRING)
row format delimited
lines terminated by ‘\n’
fields terminated by ‘,’
stored as textfile
location ‘hdfs_path’;

然后,如果您的 MR 作业将包含 field1、field2 和 field3 的 CSV 文件写入 hdfs_path,则可以通过此外部表查询它们。

关于java - 是否可以在 MR 作业之外将数据写入 HDFS 并仍然使用 Hive 进行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57632601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com