我有一个Dataframedf1的格式
+------+------+------+
| Col1 | Col2 | Col3 |
+------+------+------+
| A | z | m |
| B | w | n |
| C | x | o |
| A | z | n |
| A | p | o |
+------+------+------+
和另一个Dataframedf2的格式
+------+------+
| Col1 | Col2 |
+------+------+
| 0-A | 0-z |
| 1-B | 3-w |
| 2-C | 1-x |
| | 2-P |
+------+------+-
我正在尝试使用sparkjava将df1的col1和col2中的值替换为df2中的值。
结束Dataframedf3应该是这样的。
+------+------+------+
| Col1 | Col2 | Col3 |
+------+------+------+
| 0-A | 0-z | m |
| 1-B | 3-w | n |
| 2-C | 1-x | o |
| 0-A | 0-z | n |
| 0-A | 2-p | o |
+------+------+------+
我试图用df2的col1和col2中的值替换df1的col1和col2中的所有值。我是否可以用spark javaDataframe语法来实现这一点。?
我最初的想法是这样做。
String pattern1="\\p{L}+(?: \\p{L}+)*$";
df1=df1.join(df2, df1.col("col1").equalTo(regexp_extract(df2.col("col1"),pattern1,1)),"left-semi");
1条答案
按热度按时间bpsygsoo1#
替换上一个
join
具有以下连接的操作。