gpt4 book ai didi

hadoop - 检查表是否存在并将数据加载到Hbase和HIve表中

转载 作者:行者123 更新时间:2023-12-02 20:05:46 25 4
gpt4 key购买 nike

我在HDFS中有数据。我想将该数据加载到hbase和hive表中。
我写了一个bash shell脚本,其中我编写了一个Pig脚本以将HDFS的数据加载到HBASE,还编写了 hive 脚本以将HDFS的数据加载到HIVE表,它们运行良好。相同的结构,我将所有数据文件加载到单个hbase和hive表中。

现在我的查询是假设如果我在HDFS目录中收到更多数据文件,并且如果我再次运行shell脚本,它将再次创建具有相同名称的hbase和hive表,并告知该表已经存在。我该如何编写一个hive和hbase查询,以便第一个查询将检查表是否存在,如果该表不存在,它将第一次创建该表并将数据从HDFS加载到HBASE和Hive表中。如果该表已经存在,那么它将仅将数据插入现有的hbase和hive表中。它不应覆盖表中当前存在的数据。
如何做到这一点?

下面是我的脚本文件:myScript.sh

echo "create 'goodtable','gt'" | hbase shell    
pig -f a.pig -param input=/user/user/d/
hive -f h.hql

哪里a.pig:
G = LOAD '$input' USING PigStorage(',') as (c1:chararray, c2:chararray,c3:chararray,c4:chararray,c5:chararray);
STORE G INTO 'hbase://goodtable' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('gt:name gt:state gt:phone_no gt:gender');

h.hql:
create external table hive_table(
id int,
name string,
state string,
phone_no int,
gender string) row format delimited fields terminated by ',' stored as textfile;
LOAD DATA INPATH '/user/user/d/' INTO TABLE hive_table;

最佳答案

我只是想为HBase添加一个示例,因为之前已经介绍过Hive:

if [[ $(echo "exists 'goodtable'" | hbase shell | grep 'not exist') ]]; 
then
echo "create 'goodtable','gt'" | hbase shell;
fi

关于hadoop - 检查表是否存在并将数据加载到Hbase和HIve表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23773949/

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