我是个新手。我正在尝试从hbase读取数据,并在expressionbuilder中使用bigdatabatch对数据进行一些转换,然后将输出写入一个文件。
现在我想得到表的行键并对其应用如下转换,
(concat('-',cast(cus.key as string))) as id
这里的key是我从中提取数据的hbase表的rowkey。
我正在附加Map选项卡的快照。
因此,当我基本上运行我的作业时,应该选取hbase表的键,以便执行上述转换 cast(cus.key as string)
应应用于rowkey并存储为列id。
我想知道我们是否有简单的方法从hbase表中获取rowkey?
提前谢谢。
2条答案
按热度按时间pkwftd7m1#
首先,在hbase中加载数据时,需要创建一个自定义rowkey(在hbaseoutput选项中)。
您可以使用一些id字段来使其唯一,如
"key"+user_id
.跟着这个:这里
同时,存储相同的值(
"key"+user_id
)在您命名的列中row_key_technical
(例如)现在可以像在表中使用普通列一样使用rowkey。因此,使用thbaseinput,您可以检索技术栏中的rowkey存储并执行任何您想要的操作。
你需要在两次内完成。
我不确定这是唯一的解决办法,但它是一个。可能有人有更好的解决方案;)。
x4shl7ld2#
可以强制hbaseinput组件获取hbase表的rowkey。执行以下操作,转到thbaseinput类存在的位置。
c:\program files(x86)\talend studio\studio\plugins\org.talend.designer.components.mrprovider\u 6.2.1.20160704\u 1411\components\thbaseinput
在thbaseinput\u mrcode\u main\u only java jet类中,将有一个validateresult()方法,如下所示
完成后,删除c:\program files(x86)\talend studio\studio\configuration中的文件“componentscache.javacache”。重新启动talend开放工作室。现在,thbaseinput组件将从hbase表中获取行键。这可能不适合所有情况,但如果您使用talend open studio生成作业并将jar部署到其他地方,这可能会有所帮助。
多亏了我的项目经理。