【发布时间】:2021-06-30 16:55:41
【问题描述】:
在加入两个数据帧时,我在 pyspark 中遇到问题。第一个数据框是单列数据框“zipcd”,第二个数据框是四列数据框。
每当我尝试加入两个数据帧时都会出现问题,因为 Pyspark 在我的新数据帧中返回我,关于 zipcd 的单列,它的所有值都相同的列(第一行在所有行中重复,而且不是这样)。
例如:
Zip.select("Zip").show()
+------------+
| Zip|
+------------+
| 6.0651002E8|
| 6.0623002E8|
| 6.0077203E8|
| 6.0626528E8|
| 6.0077338E8|
| 0.0|
另一个数据框是zipcd:
zip_cd1.show()
+-----+
|zipcd|
+-----+
|60651|
|60623|
|60077|
|60626|
|60077|
| 0|
每当我尝试加入数据框时,总是会发生以下情况:
Zip1=zip_cd1.join(Zip).select('Zip','zipcd')
Zip1.show()
+------------+-----+
| Zip|zipcd|
+------------+-----+
| 6.0651002E8|60651|
| 6.0623002E8|60651|
| 6.0077203E8|60651|
| 6.0626528E8|60651|
| 6.0077338E8|60651|
| 0.0|60651|
无论我是否更改联接类型都会发生这种情况,而且我不知道发生了什么。
预期输出:
+------------+-----+
| Zip|zipcd|
+------------+-----+
| 6.0651002E8|60651|
| 6.0623002E8|60623|
| 6.0077203E8|60077|
| 6.0626528E8|60626|
| 6.0077338E8|60077|
| 0.0|0 |
【问题讨论】:
-
预期输出是什么?
-
我会更新我的问题
-
为你的加入提供密钥,否则无论你使用什么加入,它都将是笛卡尔加入。
-
没有可用的键,因为其中一个数据框只有一列(单列数据框)