蜂房负荷数据分离的绝对文件路径
随着参考下面的蜂房命令列表:蜂房负荷数据分离的绝对文件路径
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..
单独陈述?
使用java动作节点来完成这个逻辑。您可以使用逗号分割input_files,并使用hive jdbc连接在所有输入位置的循环中执行配置单元命令。
我在这一刻有同样的问题。你有一些解决方案? – chech0x