hadoop - 在 PIG (Hadoop) 中将输入拆分为子字符串

标签 hadoop mapreduce apache-pig

假设我在 Pig 中有以下输入:

some

我想把它转换成:

s
so
som
some

我(还)没有找到一种方法来迭代 Pig latin 中的 chararray。我找到了 TOKENIZE 函数,但它在单词边界上 split 。 那么“拉丁 pig ”可以做到这一点还是需要 Java 类才能做到这一点?

最佳答案

尼尔斯, TOKENIZE 采用定界符参数,因此您可以将其拆分为每个字母;但是我想不出一种方法让它产生重叠 token 。

不过,在 Pig 中编写 UDF 非常简单。您只需实现一个名为 EvalFunc 的简单接口(interface)(此处有详细信息:http://wiki.apache.org/pig/UDFManual)。 Pig 是围绕用户编写自己的函数来处理大多数任何事情的想法而构建的,因此编写自己的 UDF 是一件常见且自然的事情。

一个更简单的选择是使用 Pig 流式处理通过脚本传递数据(我发现编写一个快速的 Perl 或 Python 脚本比为一次性作业实现 Java 类要快),尽管效率不高。这里有一个例子:http://www.cloudera.com/blog/2009/06/17/analyzing-apache-logs-with-pig/ -- 它演示了预先存在的库、Perl 脚本、UDF,甚至是动态 awk 脚本的使用。

关于hadoop - 在 PIG (Hadoop) 中将输入拆分为子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1400160/

相关文章:

linux - 使用 SFTP 从服务器拉取文件

java - Hive 描述分区以显示分区 url

eclipse - 找不到MapReduce(Hadoop-2.6.0)+ HBase-1.0.1.1类异常

hadoop - 如何从 .t​​sv 文件加载 Pig 中的数据?

excel - 从 Pig 导出到 CSV

hadoop - 展平仅返回 char 数组中的第一项

powershell - 尝试运行 Spark Submit、Hadoop 和其他命令行命令

hadoop - HADOOP上的HBASE分布式模式卡住了

hadoop - 在 hdfs 文件上运行 awk 脚本并将结果文件保存在 hdfs 中

java - Hadoop 作业 : Task fail to report status for 601 seconds