gpt4 book ai didi

hadoop - 将 PIG 中的一些字段存储到 Hbase 中

转载 作者:可可西里 更新时间:2023-11-01 15:18:55 27 4
gpt4 key购买 nike

我正在尝试提取字符串的某些部分并将其存储到列中的 hbase。

文件内容:

msgType1   Person xyz has opened Internet:www.google.com from IP:192.123.123.123 for duration 00:15:00

msgType2 Person xyz denied for opening Internet:202.x.x.x from IP:192.123.123.123 reason:unautheticated

msgType1 Person xyz has opened Internet:202.x.x.x from IP:192.123.123.123 for duration 00:15:00

msgType对应的消息模式是固定的。现在我正在尝试在 hbase 中存储人名、目的地、来源、持续时间等。

我正在尝试在 PIG 中编写脚本来完成这项任务。但我一直停留在提取部分。(从字符串中的“Internet:202.x.x.x” token 中提取 IP 或网站名称)。

我试过正则表达式,但它对我不起作用。正则表达式总是抛出这个错误:

ERROR 1045: Could not infer the matching function for org.apache.pig.builtin.REGEX_EXTRACT as multiple or none of them fit. Please use an explicit cast.

有没有其他方法可以提取这些值并将其存储到 PIG 或 PIG 以外的 hbase 中?

最佳答案

如何使用 REGEX_EXTRACT 函数?你见过 REGEX_EXTRACT_ALL 函数吗?根据文档 (http://pig.apache.org/docs/r0.9.2/func.html#regex-extract-all),它应该是这样的:

test = LOAD 'test.csv' USING org.apache.pig.builtin.PigStorage(',') AS (key:chararray, value:chararray);
test = FOREACH test GENERATE FLATTEN(REGEX_EXTRACT_ALL (value, '(\\S+):(\\S+)')) as (match1:chararray, match2:chararray);
DUMP test;

我的文件是这样的:

1,a:b
2,c:d
3,

关于hadoop - 将 PIG 中的一些字段存储到 Hbase 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9888836/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com