2017-03-11 11 views
-3

複数のデータフレームがcsvファイルからロードされています。これを列に基づいて結合したいと思っています。ここでは、私はgenerelizeして自動化します。複数のデータフレームを結合するspark

val spark = SparkSession.builder.master("local").appName("my-spark-app").getOrCreate() 
    import spark.sqlContext.implicits._ 
    val df1 = spark.read.option("inferSchema", "true").option("header", "true").csv("C:/Users/mhattabi/Desktop/dataTestCsvFile/dataTest1.txt") 
    val df2 = spark.read.option("inferSchema", "true").option("header", "true").csv("C:/Users/mhattabi/Desktop/dataTestCsvFile/dataTest2.txt") 
val df3 = spark.read.option("inferSchema", "true").option("header", "true").csv("C:/Users/mhattabi/Desktop/dataTestCsvFile/dataTest3.txt") 
    df1.show 
    df2.show 
    df3.show 
val df =List(df1,df2,df3).reduce((a, b) => a.join(b,Seq("time"),joinType="outer")) 
    df.show 

それはちょうど2つのそれらのかかった問題ではありませんが、それらは、【選択結果が おかげ

ここ

答えて

0

彼ら二人に参加しているすべての答え

val df1 = spark.read.option("inferSchema", "true").option("header", "true").csv("C:/Users/mhattabi/Desktop/dataTestCsvFile/dataTest1.txt") 
     val df2 = spark.read.option("inferSchema", "true").option("header", "true").csv("C:/Users/mhattabi/Desktop/dataTestCsvFile/dataTest2.txt") 
    val df3 = spark.read.option("inferSchema", "true").option("header", "true").csv("C:/Users/mhattabi/Desktop/dataTestCsvFile/dataTest3.txt") 
    val df_result=recursiveJoinOnDate(List(df1,df2,df3)) 
    df_result.show 
     } 
def recursiveJoinOnDate(list: List[DataFrame]): DataFrame = 
{ if (list.isEmpty){ null }else if(list.size >1){ list.head.join(recursiveJoinOnDate(list.tail),Seq("`time.1`"),joinType="outer") }else list.head } 
    } 
ためのソリューションです
関連する問題