我有两个数据帧,我从两个csv文件加载。例子:
old
+--------+---------+----------+
|HOTEL ID|GB |US |
+--------+---------+----------+
| 80341| 0.78| 0.7|
| 255836| 0.6| 0.6|
| 245281| 0.78| 0.99|
| 229166| 0.0| 0.7|
+--------+---------+----------+
new
+--------+---------+----------+
|HOTEL ID|GB |US |
+--------+---------+----------+
| 80341| 1 | 0.7|
| 255836| 0.6| 1 |
| 245281| 0.78| 0.99|
| 333 | 0.0| 0.7|
+--------+---------+----------+
我希望得到:
expected result
+--------+---------+----------+
|HOTEL ID|GB |US |
+--------+---------+----------+
| 80341| 1 | None|
| 255836| None| 1 |
| 333 | 0.0| 0.7|
+--------+---------+----------+
我一直在摆弄数据帧foreach方法,但未能让它工作......作为一个火花新手会感激任何线索。
干杯!
圣拉斐尔
答案 0 :(得分:-1)
您是否可以提供有关新旧运行的更多详细信息以获得预期结果?
您是否也在旧数据帧和新数据帧之间对GB和US列进行一些算术运算?
如果没有加入似乎你可能正在寻找 如果两个数据帧之间的顺序不同,则必须先进行连接
#renaming column names for convenience
newDF=new.toDF('HOTEL ID','N_GB','N_US')
#doing an inner join (lookup sql joins for the type of join you need)
old.join(newDF,'HOTEL ID','inner')
这将为您提供一个包含架构的表
| HOTEL ID | US | DB | N_US | N_GB |
|----------|----|----|------|------|
| 80341 |0.78| 0.7|1 | 0.7 |
| | | | | |
| | | | | |