aboutsummaryrefslogtreecommitdiffstats
path: root/sample-apps/blog-recommendation/src/pig/feed_user_item_cf_vespa.pig
blob: 66cb6c5d5c66841777be1f8fe89c5af81c4e8a7e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
-- Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
REGISTER vespa-hadoop.jar

-- Create valid Vespa put operations
DEFINE VespaPutOperationDoc
       com.yahoo.vespa.hadoop.pig.VespaDocumentOperation(
            'operation=put',
            'docid=id:blog-recommendation:blog_post::<post_id>',
            'create-tensor-fields=user_item_cf'
       );

DEFINE VespaPutOperationUser
       com.yahoo.vespa.hadoop.pig.VespaDocumentOperation(
            'operation=put',
            'docid=id:blog-recommendation:user::<user_id>',
            'create-tensor-fields=user_item_cf'
       );

-- Transform tabular data to a Vespa document operation JSON format
DEFINE VespaStorage
       com.yahoo.vespa.hadoop.pig.VespaStorage();


data_doc = LOAD 'blog-recommendation/user_item_cf/product_features' USING JsonLoader('post_id:chararray, user_item_cf:[double]');
data_doc_for_feed = FOREACH data_doc GENERATE VespaPutOperationDoc(*);


data_user = LOAD 'blog-recommendation/user_item_cf/user_features' USING JsonLoader('user_id:chararray, user_item_cf:[double]');
data_user_for_feed = FOREACH data_user GENERATE VespaPutOperationUser(*);


-- Store into Vespa
STORE data_doc_for_feed INTO '$ENDPOINT' USING VespaStorage();
STORE data_user_for_feed INTO '$ENDPOINT' USING VespaStorage();