我必须使用DataFrame2将DataFrame1中可用的值插入到具有空值的列之一中。基本上更新DataFrame2中的列。
两个数据帧都有2个公共列。
有没有办法用Java做同样的事情?或者可以有不同的方法?
样本输入:
1)文件1. csv
BILL_ID,BILL_NBR_TYPE_CD,BILL_NBR,VERSION,PRIM_SW
0501841898,BIN ,404154,1000,Y
0681220958,BIN ,735332,1000,Y
5992410180,BIN ,454680,1000,Y
6995270884,SREBIN ,1000252750295575,1000,Y
这里BILL_ID
是系统id,BILL_NBR是外部id。
2)文件2. csv
TXN_ID,TXN_TYPE,BILL_ID,BILL_NBR_TYPE_CD,BILL_NBR
01234, ABC ," ",BIN ,404154
22365, XYZ ," ",BIN ,735332
45890, LKJ ," ",BIN ,454680
23456, MPK ," ",SREBIN ,1000252750295575
样本输出
如下所示BILL_ID
值应该填充在File2. csv
中
01234, ABC ,501841898,BIN ,404154
22365, XYZ ,681220958,BIN ,735332
45890, LKJ ,5992410180,BIN ,454680
23456, MPK ,6995270884,SREBIN ,1000252750295575
我已经创建了两个DataFrame并将两个文件的数据加载到其中,现在我不确定如何继续。
编辑
基本上,我想清楚以下三个步骤:
对于这一步,我写了:file2Df.select("BILL_NBR_TYPE_CD","BILL_NBR");
如何获得BILL_ID值从File1. csv基于取回的值在步骤1?
如何在File2. csv中相应地更新BILL_ID值?
我是新来的,如果有人能给我指点,我将不胜感激。
您需要根据BILL_NBR
列连接两个表。
假设:BILL_NBR
和之间存在一对一的关系BILL_ID
列。
假设您的File1. csv和File2.csv的数据帧名称分别为file1DF
和file2DF
,以下内容应该适合您:
Dataset<Row> file1DF = file1DF.select("BILL_ID","BILL_NBR","BILL_NBR_TYPE_CD");
Dataset<Row> file2DF = file2DF.select("TXN_ID","TXN_TYPE","BILL_NBR_TYPE_CD","BILL_NBR");
Dataset<Row> file2DF = file2DF.join(file1DF, file1DF("BILL_NBR","BILL_NBR_TYPE_CD"));
注意:我没有资源通过运行上述代码来测试它。如果您遇到任何编译时或运行时错误,请告诉我。