python或pyspark中的条件语句
我正在使用spark查询配置单元表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 *
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'
。。。