2017-03-26 10 views
1

まず、私の質問を読んでいただきありがとうございます。データフレームに参加するspark java

私の質問は次のとおりです。Spark with Javaでは、2つのデータフレームに2つのcsvファイルのデータを読み込みます。

これらのデータフレームには、次の情報が含まれます。

DATAFRAME空港

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

データフレームairport_city_state私はそれがこのようになりますように、これら二つのデータフレームに参加したい

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

データフレームの結果

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

ここでdfairport.city = dfaiport_city_state.city

しかし、私は構文を明確にすることができないので、正しく結合できます。私は、変数を作成しているかの小さなコード:

// 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"); 

答えて

0

まず、お返事ありがとうございます。

私は私のソリューションの両方を試してみましたが、それらのどれも動作しない、私は次のエラーを取得する: メソッドdfairport_city_state(文字列)型ETL_Airport

について定義されていない、私はデータフレームの特定の列にアクセスすることはできません参加のために。

EDIT: がすでに参加を行うようになった、私はここに他の誰かが助けた場合の解決策を置く;)すべてのものとよろしく

//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"))); 
ため

感謝

6

次の2つのデータフレーム、例えば参加するために、列名とjoinメソッドを使用することができます。

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")); 

をあなたがすることができますオーバーロードされたバージョンもあり例えば、第三引数としてjoinタイプを指定します。

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

Hereさんより上結合する。

関連する問題