假设我有一个非常广泛的数据源:
big_thing = LOAD 'some_path' using MySpecialLoader;
现在我想生成一些较小的东西,由big\u thing的列的子集组成。
smaller_thing = FOREACH big_thing GENERATE
$21,$22,$23 ...... $257;
有没有一种方法可以做到这一点,而不必写下所有的专栏?
我想是的,但我的搜索结果不多,我想我只是用错了术语。
编辑:
看来我的问题被误解了。既然我是一个巨蟒人,我就用巨蟒来比喻。
假设我有一个数组 l1
它由数组组成。所以它看起来像一个网格,对吗?现在我要数组 l2
是“l1”的子集 such that
l2'包含来自 l1
. 我会这样做:
l2 = [[l[a],l[b],l[c],l[d]] for l in l1]
# a,b,c,d are just some constants.
在pig中,这相当于:
smaller_thing = FOREACH big_thing GENERATE
$1,$22,$3,$21;
但我有很多专栏。我感兴趣的专栏都是连续的,而且有很多。然后在python中我会这样做:
l2 = [l[x:y] for l in l2]
# again, x and y are constants, eg x=20, y=180000000. See, lots of stuff I dont want to type out
我的问题是什么是Pig相当于这个?
smaller_thing = FOREACH big_thing GENERATE ?????
那么像这样的东西呢:
Python:
l2 = [l[x:y]+l[a:b]+[l[b],l[c],l[d]] for l in l2]
清管器:
smaller_thing = FOREACH big_thing GENERATE ?????
2条答案
按热度按时间cnh2zyt31#
答案可以在以下帖子中找到:http://blog.cloudera.com/blog/2012/08/process-a-million-songs-with-apache-pig/
这个
..
从artistlat到songpreview,无所不包。同样的事情也可以用位置符号来完成。如
$1..$6
zzoitvuj2#
对,
you can simply load the dataset without columns
. 但是,如果用列名加载数据,将有助于在将来的脚本中识别列的详细信息。自定义项可以帮助您执行查询,例如,
自定义项: