Как объединить данные с одним столбцом (описание) с другим фреймворком данных, имеющим 2 столбца (Name, Caption), так что мой результирующий фреймворк будет содержать 3 столбца (Name, Caption, Description)Комбинирование данных в java
ответ
Я предлагаю решение в scala. Теперь я могу добавить это как комментарий, но для форматирования и изображения, которое я прикрепляю, предоставляя это как ответ. Я довольно много уверен, что должен быть эквивалент в Java, а для этого
val nameCaptionDataFrame = Seq(("name1","caption1"),("name2","caption2"),("name3","caption3"),("name4","caption4")).toDF("name","caption")
val descriptionDataFrame = List("desc1","desc2","desc3","desc4").toDF("description")
val nameCaptionDataFrameWithId = nameCaptionDataFrame.withColumn("nameId",monotonically_increasing_id())
nameCaptionDataFrameWithId.show
val descriptionDataFrameId = descriptionDataFrame.withColumn("descId",monotonically_increasing_id())
descriptionDataFrameId.show
nameCaptionDataFrameWithId.join(descriptionDataFrameId, nameCaptionDataFrameWithId.col("nameId") === descriptionDataFrameId.col("descId")).show
Вот пример вывода этой части кода. Я надеюсь, что вы будете в состоянии принять идею здесь (API, последовательны я предполагаю), и сделать это в Java
** правок JAVA ** «перевода» в код будет выглядеть аналогично этому.
/**
* Created by RGOVIND on 11/8/2016.
*/
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.PairFunction;
import org.apache.spark.sql.*;
import scala.Tuple2;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class SparkMain {
static public void main(String[] args) {
SparkConf conf = new SparkConf().setMaster("local").setAppName("Stack Overflow App");
JavaSparkContext sc = new JavaSparkContext(conf);
SQLContext sqlContext = new SQLContext(sc);
List<Tuple2<String, String>> tuples = new ArrayList<Tuple2<String, String>>();
tuples.add(new Tuple2<String, String>("name1", "caption1"));
tuples.add(new Tuple2<String, String>("name3", "caption2"));
tuples.add(new Tuple2<String, String>("name3", "caption3"));
List<String> descriptions = Arrays.asList(new String[]{"desc1" , "desc2" , "desc3"});
Encoder<Tuple2<String, String>> nameCaptionEncoder = Encoders.tuple(Encoders.STRING(), Encoders.STRING());
Dataset<Tuple2<String, String>> nameValueDataSet = sqlContext.createDataset(tuples, nameCaptionEncoder);
Dataset<String> descriptionDataSet = sqlContext.createDataset(descriptions, Encoders.STRING());
Dataset<Row> nameValueDataSetWithId = nameValueDataSet.toDF("name","caption").withColumn("id",functions.monotonically_increasing_id()).select("*");
Dataset<Row> descriptionDataSetId = descriptionDataSet.withColumn("id",functions.monotonically_increasing_id()).select("*");
nameValueDataSetWithId.join(descriptionDataSetId ,"id").show();
}
}
Это печатает ниже. Надеюсь, что это помогает
Tnaks за ваш ответ. Но у меня проблема. «Метод withColumn (String, Column) в типе Dataset
@SVP добавил образец Java. Я не уверен на 100% производительности или запускаю это в кластере. Работает на моем автономном узле –
Спасибо @Ramachandran G A. Это действительно помогло мне. Спасибо за Ваш ответ....... –
- 1. Комбинирование данных Cordys
- 2. Комбинирование таблицы данных
- 3. Комбинирование 2 результирующих наборы в JAVA
- 4. Комбинирование Стратегии в шаблон Java стратегии
- 5. Комбинирование в связанном DataGridView
- 6. Комбинирование модели
- 7. Комбинирование таблицы В R
- 8. Комбинирование leveragePlots()
- 9. Комбинирование NSArrays
- 10. Комбинирование селекторы
- 11. Комбинирование результирующих
- 12. Комбинирование запросы
- 13. Комбинирование селекторы в JQuery
- 14. комбинирование шейдеров в THREE.JS
- 15. Комбинирование Геттеры в складку
- 16. Комбинирование массивы в Ruby,
- 17. Комбинирование регэкспы в Руби
- 18. Комбинирование типов в Скале
- 19. Комбинирование значений из двух разных кадров данных
- 20. Комбинирование бинарные переменные в R
- 21. Комбинирование частичные функции
- 22. Комбинирование нескольких RDD в scala
- 23. Комбинирование текстов столбцов в PIVOT
- 24. Комбинирование файлов CSV powershell
- 25. Комбинирование HTML и рубин
- 26. Комбинирование поля в запросе сводной
- 27. Android-запросы на комбинирование
- 28. Комбинирование данных данных pandas с разной частотой выборки
- 29. Комбинирование 2 Oracle Таблицы
- 30. Комбинирование утверждающие и переключают заявления
Я попытался присоединиться, но это приводит к декартовой присоединиться. Все имена и титры, сопоставленные ко всем описаниям –
Есть ли ключ для соединения? Как вы определяете, какое описание соответствует имени? –
нет ключ для присоединение. совпадения первого имени с первым описанием, второе совпадение со вторым описанием и т. д. –