我的问题:有两个 Dataframe ,其中一个信息帧正在构建中。我想要做的是根据条件在引用 Dataframe 中进行过滤。当键为b时,将值2作为整个列应用到into表。输出 Dataframe 是我想要做的最后一个 Dataframe 。
Dataframe (信息)
+-----+-----+
| key|value|
+-----+-----+
| a| 10|
| b| 20|
| c| 50|
| d| 40|
+-----+-----+
Dataframe (参考)
+-----+-----+
| key|value|
+-----+-----+
| a| 42|
| b| 2|
| c| 9|
| d| 100|
+-----+-----+
下面是我想要的输出: Dataframe (输出)
+-----+-----+-----+
| key|value|const|
+-----+-----+-----+
| a| 10| 2|
| b| 20| 2|
| c| 50| 2|
| d| 40| 2|
+-----+-----+-----+
我已经尝试了几种方法,下面一个是最新的一个我尝试,但系统警告我,pyspark没有锁定功能。
df_cal = (
info
.join(reference)
.withColumn('const', reference.loc[reference['key']=='b', 'value'].iloc[0])
.select('key', 'result', 'const')
)
df_cal.show()
以下是系统提醒的升温:
AttributeError: 'Dataframe' object has no attribute 'loc'
1条答案
按热度按时间c2e8gylq1#
这解决了: