pyspark 如何迭代pysark Dataframe 中的每行

zengzsys  于 2022-11-21  发布在  Spark
关注(0)|答案(2)|浏览(145)

我有一个 Dataframe ,如下所示:

name       address     result
rishi     los angeles   true
tushar    california    false
keerthi   texas         false

我想遍历 Dataframe 的每一行,并检查结果值是“真”还是“假”
如果为true,则将地址复制到另一个地址新列;如果为false,则将地址新列设置为“Null”
如何使用pyspark实现这一点?
结果应

name       address     result  address_new
rishi     los angeles   true   los angeles

tushar    california    false   null
keerthi   texas         false   null
zpgglvta

zpgglvta1#

这一行应该用来过滤数据:

new_df = df[df['result'] == True]

就新地址而言,可以使用列表解析。

df['address_new'] = [df.loc[i]['address'] if df.loc[i] == True else None for i in range(df.shape[0])]
djmepvbi

djmepvbi2#

你可以使用when()来实现这个目的,我建议你阅读一下PySpark的基础知识。

df = df.withColumn("address_new", when(df.result == true, df.address)
.otherwise(null))

相关问题