2015-11-06 220 views
0

我有一個字符串變量dest,它保存了一定的值。我需要檢查這個變量是否存在於已註冊的臨時表中。我使用下面的查詢來找到它。如何將數據框與字符串變量進行比較

terminatecheck = sqlContext.sql(""" 
     SELECT 1 as op from known where node = """+dest +""" and 1=1 
    """) 

現在我需要將terminatecheck的值與「1」進行比較並終止循環。 我檢查並發現terminatecheck是一個行對象。我究竟如何比較呢?

if terminatecheck.op =="1": 

不起作用

回答

0

調用sqlContext.sql("Select...")將返回dataframe這是懶惰的評估。您需要調用類似first,takecollect的操作來獲取評估的表達式和返回的值。您可能需要致電first,它返回一行(類型爲)。 takecollect返回一個數組(類型爲Array[Row])。

terminatecheck = sqlContext 
    .sql("""SELECT 1 as op from known where node = """+dest +""" and 1=1""") 
    .first 
+0

我解決了它,通過檢查.count()它也工作 – mhn

相關問題