我有一个像这样的数据框
| B栏| Column B |
| --| ------------ |
| [{id:1000,缩写Id:|1、姓名:“约翰”,行星:“地球”,太阳系:《银河系》,宇宙:“这一个”,大陆:{id:33,国家:“中国”,首都:“Bejing”},otherId:400,语言:“粤式”,品种:23409,生物:“人类”}] “Human”}] |
| [{id:2000,缩写Id:|2、姓名:“詹姆斯”,行星:“地球”,太阳系:《银河系》,宇宙:“这一个”,大陆:{id:33,国家:“俄罗斯”,首都:“莫斯科”},otherId:500,语言:“俄罗斯”,物种:12308,生物:“人类”}] “Human”}] |
在写入外部位置之前,如何遍历dataframe的行,以删除所有具有country: "China"
的行?
我试过了
if df.select(array_contains(col("columnb.continent.country"), "China")) != True:
df.write.format("delta").mode("overwrite").save("file://path/")
字符串
和/或
for row in df.rdd.collect():
if df.select(array_contains(col("columnb.continent.country"), "China")) != True:
df.drop(row)
df.write.format("delta").mode("overwrite").save("file://path/")
型
2条答案
按热度按时间bqucvtff1#
您可以循环遍历各行,然后在每行中查找洲,然后在其中查找国家。
下面是示例代码:
字符串
希望对你有帮助。
8i9zcol22#
一种方法是使用exists数组函数。
字符串
语法
Row(**dict)
将通过参数解包创建Row的示例。