如何将数据帧与字符串变量进行比较

How to compare dataframe to a string variable

我有一个字符串变量 dest,它包含一个特定的值。我需要检查这个变量是否存在于已注册的 temptable 上。我使用下面的查询来找到它。

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

现在我需要将 terminatecheck 的值与“1”进行比较并终止循环。 我查看了一下,发现terminatecheck是一个row对象。我该如何比较呢?

 if  terminatecheck.op =="1":

无效

调用 sqlContext.sql("Select...") 将 return 一个 dataframe 是延迟计算的。您需要调用 firsttakecollect 等操作来计算表达式和值 returned。您可能想调用 first,其中 return 是一行(Row 类型)。 takecollect return 是一个数组(Array[Row] 类型)。

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