从Pyspark DataFrame中的选定行获取特定字段
发布于 2021-01-29 17:12:29
我通过内置火花数据帧 pyspark 从JSON文件
sc = SparkContext()
sqlc = SQLContext(sc)
users_df = sqlc.read.json('users.json')
现在,我要访问 selected_user 数据,这是它的_id字段。我可以
print users_df[users_df._id == chosen_user].show()
这给了我完整的用户行。但是,假设我只想要Row中的一个特定字段,例如用户性别,我将如何获得它?
关注者
0
被浏览
158
1 个回答
-
只需过滤并选择:
result = users_df.where(users_df._id == chosen_user).select("gender")
或搭配
col
from pyspark.sql.functions import col result = users_df.where(col("_id") == chosen_user).select(col("gender"))
最后,PySpark
Row
只是tuple
带有一些扩展名的一个,因此您可以例如flatMap
:result.rdd.flatMap(list).first()
或
map
类似这样的东西:result.rdd.map(lambda x: x.gender).first()