将hadoop作业的结果添加到hive表

r6l8ljro  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(360)

我有一个只处理大文本文件的Map作业。对每一行进行分析和分类。多重输出用于将每个类别输出到单独的文件中。最终,所有数据都被添加到一个专门用于每个类别的配置单元表中。我目前的工作流程做的工作,但有点麻烦。我将添加几个类别,并认为我可能能够简化流程。我有一些想法,正在寻找一些意见。
当前工作流:
仅Map作业将大文件划分为多个类别。输出如下所示:
类别1-m-00000
类别1-m-00001
类别1-m-00002
类别2-m-00000
类别2-m-00001
类别2-m-00002
类别3-m-00000
类别3-m-00001
类别3-m-00002
外部(非hadoop)进程将输出文件复制到每个类别的单独目录中。
类别1/00000
类别1/00001
类别1/00002
类别2/00000
类别2/00001
类别2/00002
类别3/00000
类别3/00001
类别3/00002
为每个类别创建一个外部表,然后将数据插入该类别的永久配置单元表中。
可能的新工作流
使用spark循环输出文件,并根据文件名将数据插入到相应的永久配置单元表中。
使用hcatalog将数据直接从Map器插入到永久配置单元表中,也可以是一个或一组专门用于每个类别的缩减器。

qpgpyjmq

qpgpyjmq1#

对于多输出,将输出路径设置为配置单元外部表所在的基本文件夹。然后将数据写入 "<table_name>/<filename_prefix>" . 数据将位于目标表中。

相关问题