1

我是整个 Hadoop/Hortonworks/Pig 的新手,所以请原谅我的问题。

我已经安装了 Hortonworks Sandbox。我正在尝试加载一个 twitter JSON 文件并对文件执行一些查询,但我目前被困在加载文件部分。

我知道我应该使用 Elephant-bird 来使用 JsonLoader() 加载 JSON 文件(不指定 JSON 模式),所以我从 git repo 下载了 Elephant-bird 并包含了 jar 文件

Elephant-bird\repo\com\twitter\elephant-bird\2.2.3\elephant-bird-2.2.3.jar

在 Hortonworks 沙箱内。这是我的 Pig 脚本的屏幕截图:

REGISTER elephant-bird-2.2.3.jar;
Json1 = LOAD 'JSON/sample.tweets' JsonLoader();
DESCRIBE Json1;
STORE Json1 INTO 'tweeterOutput';

不幸的是,我无法从此脚本执行中获得任何结果。我已经尝试过使用STOREDUMP命令。

可能我在这个流程中做了很多错误的事情,所以任何帮助将不胜感激!

4

2 回答 2

1

您缺少USING关键字:

Json1 = LOAD 'JSON/sample.tweets' USING JsonLoader();
于 2013-11-05T21:10:16.347 回答
0

修复以下

  1. 你需要再添加几个罐子:elephant-bird-core-4.4.jar、elephant-bird-pig-4.4.jar、elephant-bird-hadoop-compat-4.4.jar、json-simple-1.1.1.jar
  2. 在脚本中注册所有这些

    注册大象鸟核心4.4.jar;

    注册大象鸟猪4.4.jar;

    注册大象-鸟-hadoop-compat-4.4.jar;

    注册 json-simple-1.1.1.jar;

  3. 加载 'JSON/sample.tweets' 使用 com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad');

于 2014-01-11T00:57:27.700 回答