python - 如果行匹配,PySpark 设置列值等于另一个数据帧值
问题描述
您好我想检查一个火花数据框列值并根据检查行名是否与另一个数据框行匹配来设置它。
例子:
df1:
average name
3.5 n1
1.2 n2
4.2 n3
df2:
name
n1
n1
n1
n2
n3
n1
n2
n3
n3
df_i_want:
average name
3.5 n1
3.5 n1
3.5 n1
1.2 n2
4.2 n3
3.5 n1
1.2 n2
4.2 n3
4.2 n3
解决方案
您需要加入才能执行此任务:
## join both data on name
df3 = df2.join(df1, on='name',how='left')
# change column sequence
df3 = df3.select('average','name')
# order by name values
df3 = df3.orderBy('name', ascending=True)
推荐阅读
- c# - 如何根据条件从枚举中检索数据?
- c++14 - 错误:'operator<<' 不匹配(操作数类型是 'std::basic_ostream
' 和 '<未解析的重载函数类型>') - python - 在我的猜谜游戏中打印输赢结果
- c++ - CreateFont、DeleteObject 和 GDI 句柄/内存泄漏
- spring-boot - 如何在 Camel Spring Boot 中将 Resilience4j 指标集成到 Micrometer
- c# - C#:向 HttpClient 的默认请求标头添加密钥时出错
- api - OAuth.tools 是否提供任何类型的 API?
- node.js - 从 /r/GameDeals 中抓取包含 discord.js 中“免费”一词的标题 + 链接?
- java - 在 inria Spoon 中构建模型的更快方法
- node.js - Express.js 不接受 不接受大量对象数组