sqoop中的apache pig传递参数

jmo0nnb3  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(327)

下面是我的shell脚本中的sqoop cmd,

sqoop import --connect 'jdbc:sqlserver://190.148.155.91:1433;username=****;password=****;database=Testdb' --query 'Select DimFreqCellRelationID,OSSC_RC, MeContext, ENodeBFunction,EUtranCellFDD,EUtranFreqRelation, EUtranCellRelation FROM dbo.DimCellRelation WHERE DimFreqCellRelationID >**$maxval**and $CONDITIONS'  --split-by OSS --target-dir /testval;

在执行这个命令之前,我已经给$maxval赋值,当我执行sqoop命令时,应该传递一个值来代替$maxval。但那不是真的。是否可以通过sqoop传递参数。你能告诉我你有什么建议来实现这个逻辑吗?

sq1bmfud

sq1bmfud1#

我相信你看到的问题是 Package 不正确。使用单引号(')将禁止bash执行任何替换。如果要在参数中使用变量,则需要使用双引号(“)。但是,您也必须小心,因为您不希望替换$conditions占位符。不用sqoop试试:

jarcec@Odie ~ % echo '$maxval and $CONDITIONS'
$maxval and $CONDITIONS
jarcec@Odie ~ % echo "$maxval and $CONDITIONS"
 and 
jarcec@Odie ~ % echo "$maxval and $CONDITIONS"
jarcec@Odie ~ % export maxval=30
jarcec@Odie ~ % echo "$maxval and $CONDITIONS"
30 and 
jarcec@Odie ~ % echo "$maxval and \$CONDITIONS"
30 and $CONDITIONS

相关问题