当前位置: 首页 > 知识库问答 >
问题:

在pig中尝试使用Python UDF时,无法存储别名C

刘修能
2023-03-14
#commaFormat- format a number with commas, 12345-> 12,345
 @outputSchema("numformat:chararray")
 def commaFormat(num):
   return '{:,}'.format(num)
DEFINE CSVExcelStorage org.apache.pig.piggybank.storage.CSVExcelStorage;
A = LOAD '/result.csv' using CSVExcelStorage() As (id:int,lastvisitedtime:chararray,title:chararray,typedcount:int,URL:chararray,visitcount:int,bytes:int);
B = limit A 15;
REGISTER '/data/pyudf/test.py' USING streaming_python AS myudfs;
C = FOREACH B generate myudfs.commaFormat($1);

在org.apache.pig.impl.builtin.streamingUDF$processerrorthread.run(streamingUDF.java:503)

共有1个答案

子车宏浚
2023-03-14

首先,在define语句中缺少()。

REGISTER /path/piggybank.jar;
DEFINE CSVExcelStorage org.apache.pig.piggybank.storage.CSVExcelStorage();

您可能正在使用Mortar的cPython发行版,该发行版至少需要pig0.12。尝试使用jython脚本引擎。

REGISTER '/data/pyudf/test.py' USING jython AS myudfs;
C = FOREACH B generate myudfs.commaFormat($1);

或者,您可以使用REPLACE函数轻松地删除逗号,而不是编写UDF。

REGISTER /path/piggybank.jar;
DEFINE CSVExcelStorage org.apache.pig.piggybank.storage.CSVExcelStorage();
A = LOAD '/result.csv' using CSVExcelStorage() AS (id:int,lastvisitedtime:chararray,title:chararray,typedcount:int,URL:chararray,visitcount:int,bytes:int);
B = FOREACH A GENERATE id,REPLACE(lastvisitedtime,',',''),title,typedcount,URL,visitcount,bytes;
C = LIMIT B 15;
DUMP C;
 类似资料:
  • 问题内容: 我正在按照http://www.py2exe.org/index.cgi/Tutorial上的教程进行操作,以了解如何使用py2exe。我进入步骤3,在这里您应该运行命令: 我这样做,然后收到此错误: 我的机器上安装了python 2.4。有任何想法吗?我相信这很简单。 问题答案: Python不在您的路上。如果确实有Python 2.4,则应使用默认安装程序。 无论文件位于何处,如果

  • 我试图在Laravel 5.8中实现Azure存储模拟器 它在Azure dev上工作 与公共和私有文件夹一样,我们试图将其实现为存储磁盘。我们认为只需使用相同类型的条目-而是使用. env文件中的共享密钥凭据就可以工作: 存储资源管理器已安装,可以查看Blob、队列和表。并且模拟器的状态报告: 我不知道什么样的授权头可以让它工作。 我们正在使用matthewbdaly/laravel azure

  • 我是Hadoop的新手,需要将Hadoop数据存储到MongoDB中。在这里,我使用Pig将Hadoop中的数据存储到MongoDB中。 在给定命令的帮助下,我在Pig Grunt shell中下载并注册了以下驱动程序, 在此之后,我使用以下命令成功地从MongoDB获取了数据。 然后,我尝试使用以下命令将数据从pig bag插入MongoDB,并获得成功。 然后我尝试使用下面的命令Mongo更新

  • UPDATE IDConfig设置女性ID=女性ID 1; 获取错误,如您正在使用安全更新模式,并且您试图更新一个没有使用KEY列的WHERE的表要禁用安全模式,请在首选项中切换选项-

  • 如果我能知道根本原因是什么就好了。

  • 我对猪是个新手,正在尝试自己学习。 我已经编写了一个脚本,用一个从words.txt文件中读取的单词获取纪元时间。 这是剧本。 但问题是,如果words.txt文件只有一个单词,它就会给出正确的输出。 如果它有多个单词,如 则会给出以下错误 谢谢你。