Мы создали два набора данных, предложениеDataFrame, предложениеDataFrame2, где должна произойти замена поиска.
предложениеDataFrame2 хранит условия поиска и замены.
Мы также выполнили все 11 типов соединений: «внутреннее», «внешнее», «полное», «полное», «левое», «левое», «правое внешнее», «правое», «левое полу», «левое», «крест». ' ни один из них не дал нам результат.
Не могли бы вы сообщить нам, где мы идем неправильно, и пожалуйста, укажите нам правильное направление.
List<Row> data = Arrays.asList(
RowFactory.create(0, "Allen jeevi pramod Allen"),
RowFactory.create(1,"sandesh Armstrong jeevi"),
RowFactory.create(2,"harsha Nischay DeWALT"));
StructType schema = new StructType(new StructField[] {
new StructField("label", DataTypes.IntegerType, false,
Metadata.empty()),
new StructField("sentence", DataTypes.StringType, false,
Metadata.empty()) });
Dataset<Row> sentenceDataFrame = spark.createDataFrame(data, schema);
List<Row> data2 = Arrays.asList(
RowFactory.create("Allen", "Apex Tool Group"),
RowFactory.create("Armstrong","Apex Tool Group"),
RowFactory.create("DeWALT","StanleyBlack"));
StructType schema2 = new StructType(new StructField[] {
new StructField("label2", DataTypes.StringType, false,
Metadata.empty()),
new StructField("sentence2", DataTypes.StringType, false,
Metadata.empty()) });
Dataset<Row> sentenceDataFrame2 = spark.createDataFrame(data2, schema2);
Dataset<Row> remainingElements=sentenceDataFrame.join(sentenceDataFrame2,sentenceDataFrame.col("label").equalTo(sentenceDataFrame2.col("label2")),"cross");
System.out.println("Left anti join count :"+remainingElements.count());
Ввод
Аллен Дживи Прамод Аллен
Сандеш Армстронг Дживи
Харша Нишай ДЕУОЛТ
Ожидаемый результат
Apex Tool Group jeevi pramod Apex Tool Group
sandesh Apex Tool Group jeevi
сурша Nischay StanleyBlack