Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

295
Views
unirse a un dataframe chispa java

En primer lugar, gracias por el tiempo en leer mi pregunta.

Mi pregunta es la siguiente: En Spark con Java, cargo en dos dataframes los datos de dos archivos csv.

Estos marcos de datos tendrán la siguiente información.

Aeropuerto de marco de datos

 Id | Name | City ----------------------- 1 | Barajas | Madrid

Marco de datos aeropuerto_ciudad_estado

 City | state ---------------- Madrid | España

Quiero unir estos dos marcos de datos para que se vea así:

resultado del marco de datos

 Id | Name | City | state -------------------------- 1 | Barajas | Madrid | España

Donde dfairport.city = dfaiport_city_state.city

Pero no puedo aclarar con la sintaxis para poder hacer la unión correctamente. Un pequeño código de cómo he creado las variables:

 // Load the csv, you have to specify that you have header and what delimiter you have Dataset <Row> dfairport = Load.Csv (sqlContext, data_airport); Dataset <Row> dfairport_city_state = Load.Csv (sqlContext, data_airport_city_state); // Change the name of the columns in the csv dataframe to match the columns in the database // Once they match the name we can insert them Dfairport .withColumnRenamed ("leg_key", "id") .withColumnRenamed ("leg_name", "name") .withColumnRenamed ("leg_city", "city") dfairport_city_state .withColumnRenamed("city", "ciudad") .withColumnRenamed("state", "estado");
about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Puede usar el método de join con el nombre de la columna para unir dos marcos de datos, por ejemplo:

 Dataset <Row> dfairport = Load.Csv (sqlContext, data_airport); Dataset <Row> dfairport_city_state = Load.Csv (sqlContext, data_airport_city_state); Dataset <Row> joined = dfairport.join(dfairport_city_state, dfairport_city_state("City"));

También hay una versión sobrecargada que le permite especificar el tipo de join como tercer argumento, por ejemplo:

Dataset <Row> joined = dfairport.join(dfairport_city_state, dfairport_city_state("City"), "left_outer");

Aquí hay más información sobre las uniones.

about 4 years ago · Santiago Trujillo Report

0

Primero, muchas gracias por tu respuesta.

Probé mis dos soluciones pero ninguna funciona, aparece el siguiente error: El método dfairport_city_state (String) no está definido para el tipo ETL_Airport

No puedo acceder a una columna específica del marco de datos para unirme.

EDITAR: Ya tengo que hacer la unión, pongo aquí la solución en caso de que alguien más ayude;)

Gracias por todo y un saludo

 //Join de tablas en las que comparten ciudad Dataset <Row> joined = dfairport.join(dfairport_city_state, dfairport.col("leg_city").equalTo(dfairport_city_state.col("city")));
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!