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

Amazon EMR:如何在参数中使用内联shell脚本添加Amazon EMR MapReduce/Hive/Spark步骤?

仉高昂
2023-03-14

例如,我有两个配置单元作业,其中一个作业的输出在第二个作业中用作参数/变量。我可以在终端上成功运行以下comand以在EMR集群的主节点上获得结果。

[hadoop@ip-10-6-131-223 ~]$ hive -f s3://MyProjectXYZ/bin/GetNewJobDetails_SelectAndOverwrite.hql --hivevar LatestLastUpdated=$(hive -f s3://MyProjectXYZ/bin/GetNewJobDetails_LatestLastUpdated.hql)

详细信息:失败:ParseException第7行:61无法识别表达式规范中“$”(“hive”)附近的输入

JAR位置:command-runner.JAR

主类:无

失败时的操作:取消并等待

我还用command-runner.jar尝试了它,以运行第一个hive命令。它仍然不起作用:

共有1个答案

米修平
2023-03-14

您应该在EMR上作为两个不同的步骤执行这两个hive命令。此外,参数应该作为列表而不是字符串传递。您可以按空格('')拆分配置单元命令,这将返回一个列表,并将该列表作为参数传递给EMR步骤。

参考:https://docs.aws.amazon.com/cli/latest/Reference/emr/add-steps.html

 类似资料:
  • 问题内容: 我想在现有的CSV文件中添加一行标题,并在适当位置进行编辑。我怎样才能做到这一点? 我想结束 更改初始CSV输出不方便。 任何标准命令都可以。重要的是,文件已就地编辑,并且该行插入到文件的开头。 问题答案: 这将在文件的开头添加自定义文本:

  • 我想添加在从文件,我的文件包括: ,但当我运行它路径不添加时,我键入。 但当我输入terminal时,它会添加到我的路径中。 我的档案有什么遗漏吗?

  • 问题内容: 我想将参数传递给它。 我已经习惯了这样做,,....但我要开始对其进行命名 问题答案: 有很多方法可以解析sh中的参数。Getopt很好。这是一个简单的脚本,可以手动解析内容: 运行示例如下: 请注意,由于脚本eval是由用户构造的字符串,因此它甚至不具有强大的鲁棒性,也没有向安全漏洞开放。它仅是作为一种可能的做事方式的示例。一种更简单的方法是要求用户在环境中传递数据。在bourne

  • 问题内容: 关于这种事情有很多问题,但让我们想象一下,我们的目标是安装了getopt和getopts的通用Linux系统(不是我们将使用其中任何一种,但它们似乎很流行) 如何同时解析长参数(–example | –example简单选项)和短参数(-e | -esimple-example | -e简单示例) 问题答案: 您想使用多头和空头期权。工作代码示例: 注意,是先前定义的功能(未显示)。

  • 我有一个php脚本,它显示文件夹dir中的所有照片,我需要包含一个应用给定数据参数的html标记。php代码是: 我需要把它作为img src放入html标记中: 我试着用$img和use来代替echo“创建新的var,但这只给了我一个图像

  • 问题内容: 我试图运行在运行时调用shell脚本的Java代码。 当我在终端中运行脚本时,我正在将参数传递给脚本 码: Java代码: 如何在Java代码中为脚本传递参数? 问题答案: 在Java的最新版本中创建进程的首选方法是使用类,这使得此操作非常简单: 但是,如果您确实出于某种原因想要/需要使用该方法,则可以使用该方法的重载版本,这些版本允许显式指定参数: