Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

294
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda