我在Pig脚本中使用Ruby用户定义函数(UDF)。现在的要求是在UDF中使用“bunny”gem,所以我在所有数据节点上安装了那个gem。但是当我在PigUDF中访问该gem时,它在那里不可用。通过本地脚本,我可以在每台机器上使用该gem,但无法通过Pig脚本访问它。有什么帮助吗? 最佳答案 现在,我遇到了问题。Pig使用Jython和JRuby库来编译python和rubyudfs。所以如果我们单独在从节点上安装额外的模块没有任何区别。更好的方法是在这些场景中使用pig流功能。
使用elephant-bird-pig-JsonLoader函数需要注册哪些jar? 最佳答案 我指着一些jar。注册'elephant-bird-pig-4.1.jar';注册'elephant-bird-core-4.1.jar';注册'elephant-bird-hadoop-compat-4.1.jar'; 关于hadoop-elephant-bird-pig-JsonLoader()所需的jar,我们在StackOverflow上找到一个类似的问题:
我有一个简单的Pig脚本,它使用我创建的PythonUDF。如果我删除UDF部分,脚本可以正常完成。但是当我尝试注册我的UDF时,出现以下错误:ERROR2997:EncounteredIOException.Filepig_test/py_udf_substr.pydoesnotexist这是我的UDF:@outputSchema("chararray")defget_fistsn(data,n):returndata[:n]这是我的Pig脚本:REGISTER'pig_test/py_udf_substr.py'USINGjythonaspyudf;A=load'pig_test/
很多时候我必须在服务器上运行多个pig脚本。我的大部分脚本大约需要30分钟才能完成。我不想等到一个脚本完成后再启动另一个脚本。那么,我可以在gruntshell中同时运行多个脚本吗?或者在后台运行pig脚本并启动另一个pig脚本(类似于nohup)? 最佳答案 在终端中运行以下命令,nohuppig/home/mypigscript.pig&mypigscript.pig将包含pig命令。经过多次试验和错误后找到解决方案:) 关于hadoop-如何在后台运行pig脚本?,我们在Stack
我需要将一个值附加到PIG中声明的变量。%declareDESC'测试/nimmiv/pig'raw=LOAD'test.log'USINGPigStorage('\t')AS(a1:chararray,a2:chararray,a3:long);/*做任何PIG处理*/value=FOREACHrawGENERATE$0;TMP=FOREACHrawGENERATE$1ASpath;PATH=不同的TMP;/*dumpPATH只会给我(tmp),我需要将此值附加到现有值Test/nimmiv/pig=>Test/nimmiv/pig/tmp*/将值存储到“$DESC/$PATH”中;
我有一些我想用pig处理的文件,它们已经被gzip压缩了。这些文件不以任何扩展名结尾。我看到的文档说pig根据文件扩展名确定压缩,所以有没有一种方法可以处理没有特殊文件扩展名的压缩文件。在这种情况下,更改文件扩展名不太可行。 最佳答案 唯一可能的方法是编写自己的加载器并处理这种情况。 关于hadoop-使用Pig处理没有扩展名的压缩文件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question
我想为一个文件添加mapDB,供pigUDF中的所有映射器使用。我怎样才能一次性设置这个mapDB对象?我们有没有在实例化pigudf时只调用一次的函数?谢谢。 最佳答案 在pig中,必须扩展EVALFUNC才能为记录的每一行调用udf。扩展了evalfunc的类可以通过在pig-script的开头定义来实例化。定义ex_argmy.udfs.Extract('true');这会导致类的实例化。 关于hadoop-pigudf中是否有类似setup的功能,我们在StackOverflow
在将数据加载到Hive表之前,我必须在平面文件中格式化数据。CF32|4711|00010101Z|+34.883|98562AS1D|N8594ãä|00|2该文件是管道分隔的,我需要在平面文件的不同列上应用不同的清理和格式化功能。我有Clean_Text、Format_Date、Format_TimeStamp、Format_Integer等多个函数。我的想法是将架构作为构造函数传递给我的UDF,并在pig中调用平面文件上的不同函数。A=LOAD'call_detail_records'USINGorg.apache.hcatalog.pig.HCatLoader();DESCRI
我在尝试从文件加载csv时遇到问题。我不断收到以下错误:Input(s):Failedtoreaddatafrom"hdfs://localhost:9000/user/der/1987.csv"Output(s):Failedtoproduceresultin"hdfs://localhost:9000/user/der/totalmiles3"查看我安装在本地计算机上的Hadoophdfs,我看到了该文件。事实上,该文件位于多个位置,例如/、/user/等。hdfsdfs-ls/user/derFound1items-rw-r--r--1dersupergroup127162942
我写了一个使用JodaTime的UDF.我将其作为依赖项包含在pom.xml中。当我运行我的pig脚本时出现错误ERROR2998:Unhandledinternalerror.org.joda.time.LocalDate.parse(Ljava/lang/String;)Lorg/joda/time/LocalDate;我是java、maven和hadoop的新手。我如何将joda捆绑到我在集群上运行的jar(如c/c++中的静态链接)?这不是howtoincludeexternaljarfileusingPIG的副本因为我不能使用-D选项并且在pig脚本中注册JodaTime没有