2016-04-14 9 views
1

ユーザに入力を求めるPythonスクリプトを作成しようとしています。この入力は2つの別々の変数に格納され、これらの変数は情報のハイブの照会に使用されます。以下のコード:Python変数がハイブクエリとして渡されました

person_database = [] 
full_name = raw_input('Enter Your Full Name: ') 
residence_city = raw_input('Enter City of Interest: ') 
def check(): #Define function 
` cmd = "hive -S -e 'SELECT * FROM project.full_score WHERE` person_name=="full_name" AND city=="recidence_city";'" 
    person_database = commands.getoutput(cmd) 
    print person_database 

今の質問は、どのようにそのハイブのために「CMD」へ変数を渡すことですが、彼らは、ない変数名が含まれているものを使用することを理解することができますか?たとえば、 "full_name"に "John Smith"が含まれ、 "residence_city"に "Vancouver"が含まれている場合、 "john Smith"と "Vancouver"がクエリの一部を構成する必要があります。

答えて

1

あなたは、単に文字列としてcmdを扱い、必要なテキスト構築:あなたは、変数の前と後の+を追加することによってそれを行うことができます

....... 
cmd = "hive -S -e 'SELECT * FROM project.full_score WHERE` person_name=="%s" AND city=="%s";'"%(full_name,residence_city) 
     person_database = commands.getoutput(cmd) 
     print person_database 
+0

%sから ""を削除して、 ""に名前と都市を入力してください。 – Version4

0

を。この方法では、それらを文字列として扱い、+を単純に連結します。 。

cmd = "hive -S -e 'SELECT * FROM project.full_score WHERE person_name==\"%s\" AND city==\"%s\";'"%(full_name,residence_city) 
    person_database = commands.getoutput(cmd) 
    print person_database 

\ \各 "トリックをした前に、今、ユーザーの引用を心配することなく、入力データ

はありがとうございできる男:cmd = "hive -S -e 'SELECT * FROM project.full_score WHERE person_name=="+ full_name + " AND city==" + residence_city +";'"

0

はパンダーの回答に基づいて、より良い解決策を見つけましたあなたの助けを借りて!

関連する問題