elasticsearch,apache-pig,Hadoop,elasticsearch,Apache Pig" /> elasticsearch,apache-pig,Hadoop,elasticsearch,Apache Pig" />

使用elasticsearch hadoop从Pig加载elasticsearch数组类型

使用elasticsearch hadoop从Pig加载elasticsearch数组类型,hadoop,elasticsearch,apache-pig,Hadoop,elasticsearch,Apache Pig,我在将字符串数组从Pig写入ES(使用elasticsearch hadoop)时遇到问题。当前的ES-hadoop文档()声明一个pig包映射到一个ES数组,但是我没有得到我期望的结果。我在hadoop 2.0中使用elasticsearch hadoop插件版本1.3.0.M2 以下是显示类型映射的elasticsearch hadoop文档: 以下是一个例子: % register elasticsearch-hadoop plugin jar ... % test_data = A,B

我在将字符串数组从Pig写入ES(使用elasticsearch hadoop)时遇到问题。当前的ES-hadoop文档()声明一个pig包映射到一个ES数组,但是我没有得到我期望的结果。我在hadoop 2.0中使用elasticsearch hadoop插件版本1.3.0.M2

以下是显示类型映射的elasticsearch hadoop文档:

以下是一个例子:

% register elasticsearch-hadoop plugin jar ...
% test_data = A,B,C
data = LOAD 'test_data' USING PigStorage (',') AS (f1: chararray, f2: chararray, f3: chararray);
data2 = FOREACH data GENERATE TOBAG(f1, f2, f3) AS my_fields;
STORE data2 INTO 'dgb-1610/test' USING EsStorage();
...
dump data2
({(A),(B),(C)})
...
describe data2
data2: {my_fields: {(chararray)}}
这是生成的索引的外观:

curl -XGET 'http://myhappyserver.com:9200/dgb-1610/test/_mapping'
{
    "test": {
        "properties": {
            "my_fields": {
                "properties": {
                    "0": {
                        "type": "string"
                    }
                }
            }
        }
    }
}
但这就是我所期望的:

{
    "test": {
        "properties": {
            "my_fields": {
                "type": "string"
                }
            }
        }
    }
}