我的rdd很大,我想根据提供的标头列表创建4个不同的rdd,然后通过创建4个parquest文件将其保存在impala表中。
像这样:
a b c d e f g h
--------------------------------
abc 1 3 4 5 7 9 11
xyz 2 5 7 4 9 4 12
我有黑斑羚副桌的栏目列表:
table 1 impala side :- a,b,c
table 2 impala side :- d, e, f
...
还需要为每个表添加新列以用于用户定义的主键,例如:
table 1 impala side : - id, a, b, c
尝试过rdd.map函数,但如何申请特定列表:
rdd_1 = rdd.map(lambda x: (x['a'],x['b],x['c']))
还如何使用不同的主键添加新列?
答案 0 :(得分:0)
您可以使用运算符itemgetter从rdd获取特殊列表。
import operator
list1 = ['a', 'b', 'c']
list2 = ['d', 'e', 'f']
rddGetter1 = operator.itemgetter(*list1)
rddGetter2 = operator.itemgetter(*list2)
rdd1 = rdd.map(rddGetter1)
rdd2 = rdd.map(rddGetter2)