python怎么提取数据表中的前10行成为一个新的数据框_python-如何使用来自另一个数据框的新值更......

我有两个Spark数据框:

数据框A:

|col_1 | col_2 | ... | col_n |

|val_1 | val_2 | ... | val_n |

和数据框B:

|col_1 | col_2 | ... | col_m |

|val_1 | val_2 | ... | val_m |

数据框B可以包含来自数据框A的重复行,更新行和新行.我想在spark中编写操作,在其中可以创建一个新数据框,其中包含数据框A的行以及数据框B的更新行和新行.

我从创建仅包含不可更新列的哈希列开始.这是唯一的ID.因此,假设col1和col2可以更改值(可以更新),但是col3,..,coln是唯一的.我创建了一个哈希函数作为hash(col3,.. coln):

A=A.withColumn("hash", hash(*[col(colname) for colname in unique_cols_A]))

B=B.withColumn("hash", hash(*[col(colname) for colname in unique_cols_B]))

现在,我想编写一些火花代码,基本上从B中选择哈希值不在A中的行(因此,新行和更新后的行),并将它们与A中的行一起加入新的数据帧中. pyspark?

编辑:

数据框B可以有来自数据框A的额外列,因此无法进行联合.

样例

数据框A:

+-----+-----+

|col_1|col_2|

+-----+-----+

| a| www|

| b| eee|

| c| rrr|

+-----+-----+

数据框B:

+-----+-----+-----+

|col_1|col_2|col_3|

+-----+-----+-----+

| a| wew| 1|

| d| yyy| 2|

| c| rer| 3|

+-----+-----+-----+

结果:

数据框C:

+-----+-----+-----+

|col_1|col_2|col_3|

+-----+-----+-----+

| a| wew| 1|

| b| eee| null|

| c| rer| 3|

| d| yyy| 2|

+-----+-----+-----+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值