无法使用插入覆盖目录从配置单元表插入hdfs

xqkwcwgp  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(396)

我的主要需求是使用insert-overwrite-uery从配置单元加载hdfs中的文件。在这个查询中,我尝试连接3个配置单元表。以下是查询:

select * FROM 
    AGG_CUSTOMER_EXPSR_DRV_HIVE DRV 
LEFT OUTER JOIN 
    AGG_CUSTOMER_EXPSR_SRC_HIVE SRC 
ON 
    (SRC.CUSTOMER_ID = DRV.CUSTOMER_ID) 
    AND (SRC.AGGREGATION_LEVEL_CD = DRV.AGGREGATION_LEVEL_CD) 
    AND (SRC.PRODUCT_GROUP_CD = DRV.PRODUCT_GROUP_CD) AND (SRC.SRC_SYS_CD = DRV.SRC_SYS_CD) 
LEFT OUTER JOIN 
    ALTERNATE_IP_HIVE AIP1 
ON 
    (DRV.DERIVED_CUSTOMER_ID = AIP1.IP_ID) AND (AIP1.IP_TYPE_CD IN (1, 4)) 
LEFT OUTER JOIN 
    ALTERNATE_IP_HIVE AIP3 
ON 
    (SRC.FINANCIAL_RPTNG_UNIT_ID = AIP3.IP_ID) AND (AIP3.IP_TYPE_CD = 3) 
WHERE EXCLUDE_IND ='N';

但我得到的错误如下: -sh: syntax error near unexpected token (`
有人能帮我找出这个问题吗?
注意:我已经删除了select子句中的字段。

n8ghc7c1

n8ghc7c11#

如果您在配置单元中创建了一个表,其中包含来自上述sql的结果字段的数量,那么您只需执行以下操作

INSERT OVERWRITE TABLE <database_name.your_created_table_name> SELECT * FROM 
    AGG_CUSTOMER_EXPSR_DRV_HIVE DRV 
LEFT OUTER JOIN 
    AGG_CUSTOMER_EXPSR_SRC_HIVE SRC 
ON 
    (SRC.CUSTOMER_ID = DRV.CUSTOMER_ID) 
    AND (SRC.AGGREGATION_LEVEL_CD = DRV.AGGREGATION_LEVEL_CD) 
    AND (SRC.PRODUCT_GROUP_CD = DRV.PRODUCT_GROUP_CD) AND (SRC.SRC_SYS_CD = DRV.SRC_SYS_CD) 
LEFT OUTER JOIN 
    ALTERNATE_IP_HIVE AIP1 
ON 
    (DRV.DERIVED_CUSTOMER_ID = AIP1.IP_ID) AND (AIP1.IP_TYPE_CD IN (1, 4)) 
LEFT OUTER JOIN 
    ALTERNATE_IP_HIVE AIP3 
ON 
    (SRC.FINANCIAL_RPTNG_UNIT_ID = AIP3.IP_ID) AND (AIP3.IP_TYPE_CD = 3) 
WHERE EXCLUDE_IND ='N';

从中选择它是您的查询。有关hiveql的更多帮助,请查看此url

相关问题