【问题标题】:parameter substitution in pig猪的参数替换
【发布时间】:2015-02-22 12:06:32
【问题描述】:
students = load '/home/vm4learning/Desktop/students-db.txt' using PigStorage('|') as (rnum, sname, name, age, gender, class, subject, marks);

我在为 /home/vm4learning/Desktop/students-db.txt 使用参数替换时遇到语法错误。 那么在这里使用正确语法的正确命令是什么。

谢谢

【问题讨论】:

  • 你能发布你得到的语法错误吗?

标签: apache-pig bigdata


【解决方案1】:

您需要指定 Pig LOAD 脚本的 HDFS 路径

首先您需要将输入文件复制到 HDFS 中,然后您可以在 pig 脚本中指定 hdfs 路径

您可以使用 hadoop put 命令将您的输入文件复制到 HDFS 中:

hadoop fs -put /home/vm4learning/Desktop/students-db.txt /user/input

那么您可以在您的猪脚本中使用该路径

students = load '/user/input/students-db.txt' using PigStorage('|') as (.....);

更新:

将您的猪脚本保存在扩展名为 .pig 文件的文件中。

process.pig:

students = load '$inputPath' using PigStorage('|') as (.....);

现在,您可以从终端发出以下命令,通过将输入路径作为参数传递来执行您的猪文件:

pig -p inputPath=/user/input/students-db.txt process.pig

更多详情可以check here

【讨论】:

  • 我知道这一点,但我想用输入参数替换“/user/input/students-db.txt”路径。这可以使用参数替换来实现。所以有一个用于参数替换的命令,例如:pig -param input = '/user/input/students-db.txt'。但是在这个命令中遇到语法错误。
  • @LakshmikanthAmbekar 检查我的更新答案,希望这会对你有所帮助
【解决方案2】:

使用 pig -x 文件名dryrun -param key=value -param key2=value2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 2014-11-10
    • 1970-01-01
    相关资源
    最近更新 更多