gpt4 book ai didi

hadoop - 指向本地文件的 AvroStorage schema_uri 不起作用

转载 作者:可可西里 更新时间:2023-11-01 15:16:17 26 4
gpt4 key购买 nike

我像这样使用 AvroStorage:

STORE alias INTO '$OUTPUT'
USING org.apache.pig.piggybank.storage.avro.AvroStorage('{
"index" : 1,
"schema_uri": "file://path/schema.avsc"}');

因此,从本地文件系统而不是 HDFS 获取 schema.avsc 是明确的。

它在伪分布式集群中工作,但在模式文件的 java.io.FileNotFoundException 的普通集群上失败看起来这是在后端发生的。

我假设这是因为 AvroStorage 在一个节点上的后端调用,与我运行 pig 脚本的节点不同,无法在本地文件系统中找到该文件。为什么它不能使用前端调用的模式文件?这是否意味着我仅限于 schema_uri 的 HDFS 位置或在 AvroStorage 参数中使用嵌入模式字符串?

最佳答案

原来是 piggybank 的 AvroStorage 的限制: http://www.mail-archive.com/user%40pig.apache.org/msg09000.html

现在我正在使用这个解决方法:

%declare WORK_DIR `pwd`
%declare SCHEMA_LITERAL `cat $WORK_DIR/schema.avsc`

...

STORE inputs INTO 'output'
USING com.magnetic.org.apache.pig.piggybank.storage.avro.AvroStorage('{
"index" : 1,
"schema": $SCHEMA_LITERAL}');

关于hadoop - 指向本地文件的 AvroStorage schema_uri 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20765260/

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