蜂房负荷数据分离的绝对文件路径

问题描述:

随着参考下面的蜂房命令列表:蜂房负荷数据分离的绝对文件路径

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]

我能给的绝对文件路径的逗号分隔的列表?
LOAD DATA INPATH 'hdfs://foo/bar1,hdfs://foo/bar2' INTO TABLE foo1

我正在寻找实际使用情况:

虽然在共同ordinator.xml使用

<datasets> 
     <dataset name="input1"> 
     <uri-template>hdfs://foo/bar/a</uri-template> 
     </dataset> 
</datasets> 
<input-events> 
     <data-in name="coordInput1" dataset="input1"> 
      <start-instance>${coord:current(-23)}</start-instance> 
      <end-instance>${coord:current(0)}</end-instance> 
     </data-in> 
</input-events> 
<action> 
    <workflow> 
     ... 
    <configuration> 
     <property> 
      <name>input_files</name> 
      <value>${coord:dataIn('coordInput1')}</value> 
     </property> 
    </configuration> 
    </workflow> 
</action>  

,假设有一个合格的一套24个HDFS作为位置我的输入。 如果我的配置单元查询是某种从所有这些位置将数据加载到表中,我想使用它: CREATE TABLE table1( col1 STRING )LOCATION($ {input_files});

但是,这在蜂巢中无法正常工作。 假设:input_files解析为hdfs://foo/bar/1,hdfs://foo/bar/2,hdfs://foo/bar/3这并不是在配置单元中的有效位置。

只有这样,我的理解来实现这一点,运行Java映射这需要input_files作为输入和输出,分别运行

`LOAD DATA INPATH 'hdfs://foo/bar/1' INTO TABLE foo1` 
`LOAD DATA INPATH 'hdfs://foo/bar/2' INTO TABLE foo1` 

动态蜂巢脚本。

所以,最后,我的问题是,当我能解决我的整个数据集的兴趣,这我能为${coord:dataIn('coordInput1')}使用,我不能利用这个蜂巢,避免个别LOAD DATA..ALTER TABLE ADD PARTITIONS..单独陈述?

+0

我在这一刻有同样的问题。你有一些解决方案? – chech0x

使用java动作节点来完成这个逻辑。您可以使用逗号分割input_files,并使用hive jdbc连接在所有输入位置的循环中执行配置单元命令。