python或pyspark中的条件语句

python或pyspark中的条件语句,python,dataframe,pyspark,spark-dataframe,Python,Dataframe,Pyspark,Spark Dataframe,我正在使用spark查询配置单元表 frame = sqlContext.sql("select max(id) from testing.test123") frame1=frame.map(lambda row: [str(c) for c in row]).collect() lastval =''.join(frame1[0][0]) 我得到的是我期望的最后一次旅行 现在使用这个lastval,我想查询另一个表,如下所示 abc = sqlcontext.sql("select *

我正在使用spark查询配置单元表

frame = sqlContext.sql("select max(id) from testing.test123")

frame1=frame.map(lambda row: [str(c) for c in row]).collect()

lastval =''.join(frame1[0][0])
我得到的是我期望的最后一次旅行

现在使用这个lastval,我想查询另一个表,如下所示

abc = sqlcontext.sql("select * from testing.abc123 where id > {}". format(lastval))
当lastval是一个整数时,我没有得到任何错误。但是当lastval为None时,我将脚本设置为失败。因为lastval应该是一个整数

如何指定如果lastvalue为None,则将lastval设置为
0

我试着像belwo一样,但当我做最后一次时,它仍然显示“没有”

if lastval is 'None':
 lastval = 0

比较字符串时不应使用
is
。相反,您应该使用
==

if lastval == 'None':
    lastval = 0
或者您可能会说
lastval='
,在这种情况下,您需要检查:

if not lastval:
    lastval = 0

您正在与字符串“None”进行比较。您可能希望与python值
None
进行比较
如果lastval为None:
,或者可能实际测试空字符串
'
@JennerFelton:我相信他实际上有一个字符串
'None'
,但是错误是密切相关的:他应该改为检查:
lastval='None'
@Dair我不使用库,但是
如果不是lastval:
会更像Pythonic吗?编辑:误读。它真的会返回
“None”
?@roganjosh:他调用
'.join(frame1[0][0])
,我不相信
join
会返回
None
。但我认为它可以返回一个字符串
'None'
。。。